Los indicadores de nivel de batería Bluetooth finalmente llegan a Android

Una característica realmente útil para aquellos de nosotros con auriculares Bluetooth y otros dispositivos finalmente está llegando a AOSP: indicadores de nivel de batería Bluetooth. Esto significa que los usuarios de Google, Motorola, Sony y otros dispositivos con software de Android casi disponible deberían poder determinar el nivel de batería de sus dispositivos conectados por Bluetooth sin la necesidad de una aplicación de terceros. No se sabe exactamente cómo aparecerá este indicador de nivel de batería Bluetooth en su estado final, pero la existencia de esta nueva API en AOSP significa que los desarrolladores pueden implementar indicadores de batería Bluetooth como quieran.

Ahora, para aquellos de ustedes en ciertas ROM personalizadas (como LineageOS) o con dispositivos de ciertos fabricantes (como los de Samsung, LG, Huawei, OnePlus o Xiaomi), esta no es una característica nueva. Los indicadores de nivel de batería para dispositivos Bluetooth conectados han sido compatibles con muchas ROM personalizadas y dispositivos OEM de terceros durante años, pero dicha característica ha faltado notablemente en el Android Open Source Project (AOSP), lo que significa que cualquier teléfono de Google en stock el firmware no lo admitirá.

Indicador de nivel de batería Bluetooth de Samsung

Indicador de nivel de batería Bluetooth OnePlus

Indicador de nivel de batería LG Bluetooth

Los usuarios con dispositivos Bluetooth que tienen la suerte de tener una aplicación complementaria disponible en Google Play Store pueden recuperar la información del nivel de batería de esa manera, pero de lo contrario hay pocas opciones. Una aplicación popular en Play Store llamada BatON intentó agregar esta función, pero es bastante limitada en la gama de dispositivos que puede admitir (sin culpa propia) y también se sabe que tiene muchos errores (muchos usuarios informan con frecuencia Desconexión de Bluetooth).

En lugar de depender de aplicaciones de terceros que funcionan solo con un solo dispositivo Bluetooth de su propiedad o que solo admiten un puñado de dispositivos, sería genial si Google interviniera para ofrecer una función que ha estado disponible en otros dispositivos para años. Y finalmente, parece que están haciendo exactamente eso.


API de nivel de batería Bluetooth en AOSP

El Grupo de interés especial de Bluetooth (Bluetooth SIG), el organismo que supervisa los estándares para cada iteración de Bluetooth, ya ha definido un servicio de batería (BAS) en GATT (servicios de atributos genéricos), pero Bluetooth está en condiciones de admitir BAS. Según algunas nuevas confirmaciones que encontramos al buscar en AOSP, Google se está preparando para agregar nuevas API para "obtener el nivel de batería del dispositivo remoto". En particular, mencionan las siguientes adiciones a AOSP:

Agregue API para obtener el nivel de batería del dispositivo remoto

  • Agregue la API BluetoothDevice.getBatteryLevel () para recuperar la información del nivel de batería del dispositivo remoto
  • Agregue el dispositivo Bluetooth.ACTION_BATTERY_LEVEL_CHANGED para notificar al usuario que el nivel de batería del dispositivo remoto ha cambiado
  • Agregue métodos de servicio de fondo para BluetoothDevice.getBatteryLevel ()
  • Agregue campo de nivel de batería en DeviceProperties con getters y setters
  • Agregue el método updateBatteryLevel () en RemoteDevices
  • Agregue el método resetBatteryLevel () en RemoteDevices
  • Restablezca el nivel de batería del dispositivo cuando el dispositivo está desconectado en aclStateChangeCallback () para garantizar una intención BATTERY_LEVEL_CHANGED cuando el dispositivo informa por primera vez la información del nivel de batería después de la conexión
  • Agregue pruebas para updateBatteryLevel () y resetBatteryLevel ()

A partir de esto, podemos ver que Google agregará un nuevo método en la clase BluetoothDevice llamada getBatteryLevel () que recuperará el nivel actual de batería de un dispositivo conectado cuando se llame. De acuerdo con el código fuente, esto devuelve un valor entre 0 y 100 (o -1 si Bluetooth está deshabilitado, el dispositivo está desconectado o no admite informar el nivel de batería). Por lo tanto, esto significa que es posible que el nivel de la batería se muestre de una manera más informativa que una simple barra. Un desarrollador podría mostrar una notificación o widget con el porcentaje exacto, por ejemplo.

Pero eso no es todo, una aplicación que se suscriba a la intención de transmisión ACTION_BATTERY_LEVEL_CHANGED será notificada cuando el nivel de batería del dispositivo conectado haya cambiado. Con un receptor de transmisión, se notificará a una aplicación que está escuchando cambios en el estado de la batería del dispositivo Bluetooth conectado cuando el nivel de la batería ha cambiado, por lo que no será necesario implementar un servicio de sondeo de fondo persistente de ningún tipo. Este valor se envía como un entero entre 0 y 100% a través de la intención extra EXTRA_BATTERY_LEVEL, y la aplicación puede diferenciar entre los dispositivos conectados al filtrar a través de la intención extra EXTRA_DEVICE.

Incluso ciertos dispositivos que envían información de la batería a su manera, como XEvent de Plantronics o VSC de Apple, también serán compatibles. También se está trabajando en informes de nivel de batería Bluetooth de baja energía (BLE), aunque en este momento aparece como "no se puede fusionar".


Posible función para Android 8.1?

Android O está casi sobre nosotros. La cuarta Vista previa del desarrollador se lanzó recientemente y estaba destinada principalmente a la corrección de errores, aunque hubo algunos pequeños ajustes de IU aquí y allá. Sin embargo, Google anunció que la tercera Vista previa del desarrollador presentaba todas las API de Android O finalizadas que los desarrolladores pueden usar para prepararse para la próxima versión de Android. Como tal, esto significa que la nueva API de informes de nivel de batería Bluetooth conectada no llegará a la primera versión de Android O - Android 8.0.

Sin embargo, eso no significa que no vendrá. Es posible que Google presente oficialmente esta API (cuando esté realmente terminada) con el lanzamiento eventual de Android 8.1. Al mismo tiempo, incluso pueden decidir que esta característica sea compatible a través de la Biblioteca de soporte de Android, llevándola a versiones anteriores de Android. Si eso termina sucediendo, entonces los usuarios no tendrán que esperar meses para disfrutar de dicha función (aunque siempre los alentamos a probar una de las muchas ROM personalizadas disponibles en nuestros increíbles foros).

Sin embargo, esto debería ser una noticia emocionante para los fanáticos del software de valores en su teléfono. Esperemos que no tengas celos de los usuarios con Apple, Samsung, Huawei, LG y otros dispositivos con esta ingeniosa función que debería haber estado disponible en Android hace mucho, mucho tiempo. Dado el reciente flujo de soporte para la idea en Reddit, estamos seguros de que esta será una característica bienvenida, cuando finalmente se trate de stock de Android.