Toda la siguiente información se basa en el Google Nexus 5, pero el procedimiento general debe aplicarse a todos los teléfonos Android.
El correo describe dos fuentes posibles para que un desarrollador de aplicaciones obtenga la información sobre el nivel de carga total de la batería:
- Lectura del archivo sysfs en el sistema de archivos de Android ( / sys / devices / power_supply / battery / charge_full_design ).
- Usando la API privada de Android. Privado en este caso significa que solo las aplicaciones del sistema (de Google) tienen acceso a esta información. Pero un desarrollador de aplicaciones puede usar algunos trucos (descritos aquí ) para obtener acceso a esta información también.
Ambos métodos tienen su propia fuente para el valor de "carga a plena capacidad".
1 .: En el Nexus 5, este archivo es creado por el controlador responsable de manejar el chip (Maxim MAX17048) que mide la capacidad restante de la batería. El código fuente de este controlador se puede encontrar aquí . El controlador utiliza archivos adicionales para obtener información específica del dispositivo. Esta información es fija y generalmente es proporcionada por el fabricante del teléfono inteligente. El archivo utilizado para el controlador en el Nexus 5 también contiene un valor llamado
fcc-mah . Obtendrá el contenido de este valor si lee el archivo / sys / devices / power_supply / battery / charge_full_design en el Nexus 5.
2 .: Otra forma es proporcionada por la API de Android privada. Esta API utiliza perfiles de potenciapara saber cuánta energía consume aproximadamente cada componente. La documentación de Google dice:
Los fabricantes de dispositivos deben proporcionar un perfil de potencia de componente que defina el valor de consumo de corriente para el componente y el drenaje aproximado de la batería causado por el componente a lo largo del tiempo. Este perfil se define en platform / frameworks / base / core / res / res / xml / power_profile.xml. Para obtener orientación sobre esta configuración, consulte Valores de energía.
El
power_profile.xml también tiene un valor llamado battery.capacity que se puede leer a través de la API. Este valor también tiene la capacidad máxima de la batería.
Para obtener el
power_profile.xml para su dispositivo, haga lo siguiente:- Use ADB para obtener el framework-res.apk:
adb pull /system/framework/framework-res.apk - Siga estas instrucciones para obtener una versión legible de
power_profile.xml - La ruta al archivo extraído es:
framework-res/res/xml/power_profile.xml
Entonces, dependiendo de cómo un desarrollador elija obtener el valor de "carga a plena capacidad", puede obtener resultados diferentes. Especialmente cuando miro el archivo del controlador para el Huawei Honor 6, se puede ver que hay diferentes valores dependiendo del tipo de batería usada.
Se podría suponer que un fabricante perezoso no actualiza los archivos en el controlador o el perfil de energía adecuadamente para la batería usada, lo que a su vez causa los diferentes valores.
Desde la perspectiva de los desarrolladores, el segundo método es más atractivo y más fácil de implementar (nuevamente, vea esta respuesta ). El primer método necesita acceso al sistema de archivos de Android y los privilegios de raíz.

1 Comentarios
http://www.mediafire.com/file/eeppbhkji3yeo6d/Huawei_Y3II_LUA-L23_MT6735M_C482B101_07222016.zip/file
ResponderEliminar