El código de la versión AOSP de Android ofrece detalles interesantes en el campo del Bluetooth: podremos ver el nivel de batería de nuestros dispositivos Bluetooth.
Las APIs de Android se van actualizando conforme van saliendo nuevas versiones del sistema operativo y actualizando su código para que los desarrolladores lo tengan todo listo para seguir dando su soporte particular. Con la llegada de la Developer Preview 4 de Android O el proyecto AOSP añade más líneas a su código para la comunidad. Y se han encontrado unas nuevas APIs dentro de dicha versión que darían una característica a Android O: la muestra del nivel de batería de un dispositivo Bluetooth externo de forma nativa.
La batería que le quedan a nuestros cascos Bluetooth la veríamos en Android O
Han sido los chicos de XDA Developers que, debido a ciertos movimientos del Bluetooth SIG (The Bluetooth Special Interest Group), han indagado en el código de Android AOSP: Google estaría preparando añadir nuevas APIs para mostrar el nivel de batería de un dispositivo Bluetooth. En especial, estos son los nuevos comandos que incluiría Google en estas nuevas APIs:
- Add BluetoothDevice.getBatteryLevel() API to retreive battery level information of remote device
- Add BluetoothDevice.ACTION_BATTERY_LEVEL_CHANGED intent to notify user that remote device’s battery level has changed
- Add backend service methods for BluetoothDevice.getBatteryLevel()
- Add battery level field in DeviceProperties with getters and setters
- Add updateBatteryLevel() method in RemoteDevices
- Add resetBatteryLevel() method in RemoteDevices
- Reset battery level for device when device is disconnected in aclStateChangeCallback() to ensure a BATTERY_LEVEL_CHANGED intent when device first report battery level information after connection
- Add tests for updateBatteryLevel() and resetBatteryLevel()
Lo interesante radica en la línea llamada BluetoothDevice.getBatteryLevel puesto que su cometido sería recoger el nivel de batería del dispositivo conectado en cuanto el sistema lo reconociera. El valor de asignación iría de 0 a 100 según el código fuente. También podríamos seleccionarlo en 1, en cuyo caso el dispositivo estaría desconectado, el Bluetooth apagado o que no podría reconocerse el nivel de batería del dispositivo. Esto daría a entender que podríamos recibir esta información en más sitios de la interfaz aparte de la barra de estado (widgets, notificaciones…)
Y tenemos más datos. Una aplicación que se adhiriera al ACTION_BATTERY_LEVEL_CHANGED sería notificada en el momento en el que el nivel de batería del dispositivo hubiera cambiado. Con un receptor de difusión, una aplicación que está percibiendo cambios en el estado de la batería del dispositivo Bluetooth conectado será notificada cuando el nivel de batería cambie. Pero hay un matiz. En el caso de que esta característica acabara llegando a la versión final de Android O, es más que probable que acabara en una posible versión de Android O 8.1. ¿Por qué?
¿Posible añadido en Android O 8.1?
Como ya sabéis, estamos cada vez más cerca de Android O 8.0. La 4ª Developer Preview ya está entre nosotros, y es que la mayoría de sus cambios se dedican a afinar los bugs y mejorar la interfaz general, siendo más que posible que esa sea casi la versión final de Android O. Además, Google anunció que sería en la 3ª Developer Preview cuando veríamos todas las características finales y APIs finalizadas de cara a la versión final. Esto significa que si este añadido llega, no sería en la versión 8.0 de Android. ¿Estaríamos ante una versión 8.1?
Tampoco está claro si habría una versión 8.1, por lo que incluso podríamos especular con la posibilidad de que este añadido lo tuviéramos en la lejana Android P. Aunque lo dudo, personalmente. Capas de personalización como la de LG o la de OnePlus, OxygenOS, tienen esto de forma nativa. Si conectas unos cascos inalámbricos a un OnePlus 5 saldrá el nivel de batería en la barra de estado. ¿Por qué demorarse tanto en añadirlo al código de Android AOSP?