Les indicateurs de niveau de batterie Bluetooth arrivent enfin sur Android

Une fonctionnalité très utile pour ceux qui ont un casque Bluetooth et d’autres appareils fait enfin son chemin vers AOSP: les indicateurs de niveau de batterie Bluetooth. Cela signifie que les utilisateurs de Google, de Motorola, de Sony et d'autres appareils dotés d'un logiciel Android presque disponible devraient être en mesure de connaître le niveau de charge de la batterie de leurs appareils connectés via Bluetooth sans avoir besoin d'une application tierce. On ne sait pas exactement comment cet indicateur de niveau de batterie Bluetooth apparaîtra dans son état final, mais l'existence de cette nouvelle API dans AOSP signifie que les développeurs peuvent implémenter les indicateurs de batterie Bluetooth comme bon leur semble.

Maintenant, pour ceux d'entre vous qui utilisent certaines ROM personnalisées (telles que LineageOS) ou avec des périphériques de certains fabricants (tels que ceux de Samsung, LG, Huawei, OnePlus ou Xiaomi), il ne s'agit pas d'une nouvelle fonctionnalité. Les indicateurs de niveau de batterie des périphériques Bluetooth connectés sont pris en charge depuis de nombreuses années sur de nombreuses ROM personnalisées et sur des périphériques OEM tiers, mais une telle fonctionnalité faisait notamment défaut dans le projet Open Source Android (AOSP), ce qui signifie que tous les téléphones Google en stock le firmware ne le supportera pas.

Indicateur de niveau de batterie Samsung Bluetooth

Indicateur de niveau de batterie Bluetooth OnePlus

Indicateur de niveau de batterie LG Bluetooth

Les utilisateurs de périphériques Bluetooth qui ont la chance de disposer d'une application complémentaire disponible sur le Google Play Store peuvent ainsi obtenir des informations sur le niveau de charge de la batterie, mais il existe peu d'options. BatON, une application très populaire sur le Play Store, a tenté d’ajouter cette fonctionnalité, mais sa gamme de périphériques pris en charge est assez limitée (sans que cela soit de sa faute) et elle est également connue pour être assez buggée (de nombreux utilisateurs signalant fréquemment Déconnexion Bluetooth).

Plutôt que de faire appel à des applications tierces qui ne fonctionnent qu'avec un seul appareil Bluetooth que vous possédez ou qui ne prennent en charge que quelques appareils, il serait bien que Google intervienne pour proposer une fonctionnalité disponible sur d'autres appareils depuis un certain temps. années. Et finalement, on dirait qu'ils font exactement cela.


API de niveau de batterie Bluetooth dans AOSP

Le groupe d’intérêts Bluetooth (Bluetooth SIG), l’organisme qui supervise les normes de chaque itération Bluetooth, a déjà défini un service de batterie (BAS) dans le GATT (services d'attributs génériques), mais il appartient à Bluetooth de prendre en charge le protocole BAS. Selon certains nouveaux commits découverts lors de la fouille via AOSP, Google se prépare à ajouter de nouvelles API pour «obtenir le niveau de charge du périphérique distant». Ils mentionnent notamment les ajouts suivants à AOSP:

Ajouter des API pour obtenir le niveau de batterie du périphérique distant

  • Ajouter l'API BluetoothDevice.getBatteryLevel () pour récupérer les informations sur le niveau de batterie du périphérique distant
  • Ajoutez l'intention de BluetoothDevice.ACTION_BATTERY_LEVEL_CHANGED d'informer l'utilisateur que le niveau de batterie du périphérique distant a changé
  • Ajouter des méthodes de service backend pour BluetoothDevice.getBatteryLevel ()
  • Ajouter un champ de niveau de batterie dans DeviceProperties avec des getters et des setters
  • Ajout de la méthode updateBatteryLevel () dans RemoteDevices
  • Ajouter la méthode resetBatteryLevel () dans RemoteDevices
  • Réinitialisez le niveau de la batterie pour le périphérique lorsque le périphérique est déconnecté dans aclStateChangeCallback () pour garantir une intention BATTERY_LEVEL_CHANGED lorsque le périphérique communique pour la première fois les informations sur le niveau de la batterie après la connexion.
  • Ajouter des tests pour updateBatteryLevel () et resetBatteryLevel ()

À partir de cela, nous pouvons voir que Google ajoutera une nouvelle méthode à la classe BluetoothDevice appelée getBatteryLevel (), qui récupérera le niveau de batterie actuel d'un périphérique connecté à l'appel. Selon le code source, cette option renvoie une valeur comprise entre 0 et 100 (ou -1 si Bluetooth est désactivé, le périphérique est déconnecté ou ne prend pas en charge le signalement de son niveau de batterie). Par conséquent, cela signifie qu'il est possible que le niveau de la batterie soit affiché de manière plus informative qu'une simple barre. Un développeur peut afficher une notification ou un widget avec le pourcentage exact, par exemple.

Mais ce n'est pas tout, une application qui s'abonne à l'intention de diffusion ACTION_BATTERY_LEVEL_CHANGED sera avertie lorsque le niveau de batterie du périphérique connecté aura changé. Avec un récepteur de diffusion, une application qui écoute les modifications de l'état de la batterie du périphérique Bluetooth connecté sera avertie lorsque le niveau de la batterie aura changé. Il ne sera donc pas nécessaire de mettre en œuvre un service de scrutation en arrière-plan persistant. Cette valeur est envoyée sous la forme d'un entier compris entre 0 et 100% via l'intention supplémentaire EXTRA_BATTERY_LEVEL et l'application peut différencier les appareils connectés en filtrant via l'intention supplémentaire EXTRA_DEVICE.

Même certains périphériques qui envoient des informations sur la batterie à leur manière, tels que le XEvent de Plantronics ou le VSC d’Apple, seront également pris en charge. Des travaux sont également en cours sur les rapports de niveau de batterie Bluetooth BLE (Bluetooth Low Energy) pris en charge, bien que cela soit répertorié comme «impossible de fusionner» pour le moment.


Fonction possible pour Android 8.1?

Android O est presque sur nous. La quatrième version de Developer Preview, récemment publiée, visait principalement les corrections de bugs, bien que quelques modifications mineures de l'interface utilisateur aient été apportées ici et là. Toutefois, Google a annoncé que le troisième aperçu du développeur présentait l’ensemble des API O Android finalisées que les développeurs peuvent utiliser pour se préparer à la prochaine version d’Android. En tant que tel, cela signifie que la nouvelle API de rapport de niveau de batterie Bluetooth connectée ne se dirigera pas vers la première version d'Android O - Android 8.0.

Cependant, cela ne signifie pas qu'il ne viendra pas. Il est possible que Google présente officiellement cette API (une fois celle-ci terminée) avec la sortie éventuelle d'Android 8.1. Dans le même temps, ils peuvent même décider de prendre en charge cette fonctionnalité via la bibliothèque de prise en charge Android, pour l’ajouter aux versions précédentes d’Android. Si cela se produit, les utilisateurs n'auront pas à attendre des mois pour profiter d'une telle fonctionnalité (même si nous les encourageons toujours à essayer l'une des nombreuses ROM personnalisées disponibles sur nos formidables forums).

Néanmoins, cela devrait être une nouvelle passionnante pour les fans du logiciel de stock sur leur téléphone. Espérons que vous ne serez pas obligé d'être jaloux des utilisateurs avec Apple, Samsung, Huawei, LG et d'autres appareils dotés de cette fonctionnalité astucieuse qui aurait dû être disponible sur Android il y a très longtemps. Compte tenu de la récente vague de soutien à l'idée sur Reddit, nous sommes persuadés que ce sera une fonctionnalité bienvenue - quand il s'agira finalement de stocker Android.