lunes, 19 de mayo de 2014

Battery Status

Hemos estado investigando como desarrollar un plugin que nos determine el estado de la batería, y si necesita cargarse o no el dispositivo.
Siguiendo la documentasen oficial de Apache Cordova sobre Battery Status, hemos creado el proyecto, implementado el plugin... nos hemos encontrado con el problema de que el javascript no nos  reconoce las llamadas de los eventos:

window.addEventListener("batterystatus", onBatteryStatus, false);

function onBatteryStatus(info) {
    // Handle the online event
    console.log("Level: " + info.level + " isPlugged: " + info.isPlugged);
}

ni para batterycritical o batterylow.
Esto nos ha llevado a comenzar a investigar sobre como hacer la llamada y hemos intentado modificar el js, llevar el plugin a otra carpeta donde hacerle la llamadas, modificar la llamada y la función.
Hemos buscado en internet, encontrando diferentes posibles soluciones y ninguna ha surtido efecto:
  • cambiando window por document
  • utilizando javascript y JQuery
  • introduciendo alerts básicos...
Después de mucho intentarlo hemos cambiando los eventos del ejemplo por otros creados por nosotros, los cuales llamaban a una función con alerts, mostrando que el código funcionaba, pero tras intentar de nuevo varias opciones, no hemos tenido éxito en nuestra tarea.
También  destacar que hemos lanzado la sentencia cordova plugin ls para comprobar de que el plugin estaba correctamente instalado, y así era. Todo aparentemente estaba correcto.
Finalmente hemos intentado hacer un nuevo proyecto desde cero, por si había ocurrido algún error, pero seguía sin funcionar, lo cual nos ha llevado de nuevo a la documentación y hemos incluido las siguientes líneas, tal y como nos dice la API

app/res/xml/config.xml

<plugin name="Battery" value="org.apache.cordova.BatteryListener" />

app/AndroidManifest.xml

<uses-permission android:name="android.permission.BROADCAST_STICKY" />

El resultado ha sido negativo...
Hemos seguido trabajando en ello, buscando por stack overflow,  githud, youtube, diferentes blogs de desarrolladores... haciendo multiples intentos sin resultado alguno.
Hemos mirado si todas las rutas eran correctas, estando todas bien, y la aplicación continuaba sin funcionar.
El periodo de investigación solo en esta aplicación ya rondaba las 5 horas de trabajo del equipo.

No hay comentarios:

Publicar un comentario