Bluetooth-Batteriestandsanzeigen kommen endlich auf Android

Ein wirklich nützliches Feature für diejenigen von uns, die Bluetooth-Headsets und andere Geräte verwenden, ist der Weg zu AOSP: Bluetooth-Batteriestandsanzeigen. Dies bedeutet, dass Benutzer von Google, Motorola, Sony und anderen Geräten mit fast aktueller Android-Software in der Lage sein sollten, den Batteriestand ihrer Bluetooth-Geräte zu ermitteln, ohne dass eine Drittanbieteranwendung erforderlich ist. Es ist nicht abzusehen, wie genau diese Bluetooth-Batteriestandsanzeige im Endzustand angezeigt wird, aber das Vorhandensein dieser neuen API in AOSP bedeutet, dass Entwickler Bluetooth-Batteriestandsanzeigen nach Belieben implementieren können.

Für diejenigen unter Ihnen, die auf bestimmten benutzerdefinierten ROMs (z. B. LineageOS) oder mit Geräten bestimmter Hersteller (z. B. Samsung, LG, Huawei, OnePlus oder Xiaomi) arbeiten, ist dies keine neue Funktion. Batteriestandsanzeigen für verbundene Bluetooth-Geräte werden seit Jahren von vielen benutzerdefinierten ROMs und OEM-Geräten von Drittanbietern unterstützt. Eine solche Funktion fehlte jedoch insbesondere im Android Open Source Project (AOSP), was bedeutet, dass alle Google-Telefone verfügbar sind Firmware wird es nicht unterstützen.

Samsung Bluetooth-Batteriestandsanzeige

OnePlus Bluetooth-Batteriestandsanzeige

LG Bluetooth-Akkuanzeige

Nutzer mit Bluetooth-Geräten, die das Glück haben, über eine Begleitanwendung im Google Play Store zu verfügen, können auf diese Weise Informationen zum Akkuladestand abrufen. Ansonsten gibt es nur wenige Optionen. Eine beliebte Anwendung im Play Store namens BatON hat versucht, diese Funktion hinzuzufügen. Sie ist jedoch in Bezug auf die Anzahl der unterstützten Geräte (ohne eigenes Verschulden) recht begrenzt und auch als fehlerhaft bekannt (viele Benutzer berichten häufig) Bluetooth wird getrennt).

Anstatt sich auf Anwendungen von Drittanbietern zu verlassen, die entweder nur mit einem einzigen Bluetooth-Gerät funktionieren, das Sie besitzen, oder die nur eine Handvoll Geräte unterstützen, wäre es großartig, wenn Google eine Funktion anbieten würde, die auf anderen Geräten für verfügbar war Jahre. Und schließlich sieht es so aus, als würden sie genau das tun.


Bluetooth Battery Level APIs in AOSP

Die Bluetooth Special Interest Group (Bluetooth SIG), die Stelle, die die Standards für jede Bluetooth-Iteration überwacht, hat bereits einen Batteriedienst (BAS) in GATT (Generic Attributes Services) definiert, aber Bluetooth muss BAS unterstützen. Nach einigen neuen Festlegungen, die wir beim Durchsuchen von AOSP getroffen haben, bereitet Google das Hinzufügen neuer APIs vor, um den Batteriestand des Remote-Geräts zu ermitteln. Insbesondere werden die folgenden Ergänzungen zu AOSP erwähnt:

Fügen Sie APIs hinzu, um den Batteriestand des Remote-Geräts zu ermitteln

  • Fügen Sie die BluetoothDevice.getBatteryLevel () - API hinzu, um Informationen zum Batteriestand des Remote-Geräts abzurufen
  • Fügen Sie BluetoothDevice.ACTION_BATTERY_LEVEL_CHANGED hinzu, um den Benutzer zu benachrichtigen, dass sich der Batteriestand des Remote-Geräts geändert hat
  • Hinzufügen von Backend-Dienstmethoden für BluetoothDevice.getBatteryLevel ()
  • Fügen Sie in DeviceProperties das Feld für den Batteriestand mit Gettern und Setzern hinzu
  • Fügen Sie die updateBatteryLevel () -Methode in RemoteDevices hinzu
  • Fügen Sie in RemoteDevices die Methode resetBatteryLevel () hinzu
  • Setzen Sie den Batteriestand für das Gerät zurück, wenn das Gerät in aclStateChangeCallback () getrennt wurde, um sicherzustellen, dass BATTERY_LEVEL_CHANGED beabsichtigt ist, wenn das Gerät nach dem Herstellen der Verbindung zum ersten Mal Informationen zum Batteriestand ausgibt
  • Hinzufügen von Tests für updateBatteryLevel () und resetBatteryLevel ()

Daraus können wir ersehen, dass Google der BluetoothDevice-Klasse eine neue Methode namens getBatteryLevel () hinzufügt, die beim Aufruf den aktuellen Akkuladestand eines verbundenen Geräts abruft. Entsprechend dem Quellcode wird ein Wert zwischen 0 und 100 zurückgegeben (oder -1, wenn Bluetooth deaktiviert ist, das Gerät nicht verbunden ist oder die Meldung des Akkuladezustands nicht unterstützt). Dies bedeutet, dass der Batteriestand informativer als ein einfacher Balken angezeigt werden kann. Ein Entwickler kann beispielsweise eine Benachrichtigung oder ein Widget mit dem genauen Prozentsatz anzeigen.

Das ist aber noch nicht alles. Eine Anwendung, die die Broadcast-Absicht ACTION_BATTERY_LEVEL_CHANGED abonniert, wird benachrichtigt, wenn sich der Batteriestand des angeschlossenen Geräts geändert hat. Bei einem Rundfunkempfänger wird eine Anwendung, die auf Änderungen des Batteriestatus des verbundenen Bluetooth-Geräts wartet, benachrichtigt, wenn sich der Batteriestand geändert hat, sodass kein permanenter Hintergrundabrufdienst implementiert werden muss. Dieser Wert wird als Ganzzahl zwischen 0 und 100% über die Funktion EXTRA_BATTERY_LEVEL gesendet, und die Anwendung kann zwischen verbundenen Geräten unterscheiden, indem sie über die Funktion EXTRA_DEVICE filtert.

Sogar bestimmte Geräte, die Batteriedaten auf eigene Weise senden, wie Plantronics XEvent oder Apples VSC, werden ebenfalls unterstützt. Es wird auch daran gearbeitet, dass die Anzeige des Bluetooth Low Energy (BLE) -Batterieladezustands unterstützt wird, obwohl dies derzeit als "nicht zusammenführbar" aufgeführt ist.


Mögliches Feature für Android 8.1?

Android O steht vor der Tür. Die vierte Entwicklervorschau wurde kürzlich veröffentlicht und zielt hauptsächlich auf Fehlerkorrekturen ab, obwohl es hier und da ein paar kleinere Verbesserungen an der Benutzeroberfläche gab. Google gab jedoch bekannt, dass die dritte Entwicklervorschau alle finalisierten Android O-APIs enthielt, mit denen Entwickler sich auf die nächste Version von Android vorbereiten können. Das bedeutet, dass die neue Bluetooth-API zur Meldung des Akkustands nicht in die erste Version von Android O - Android 8.0 eingeht.

Das heißt jedoch nicht, dass es nicht kommen wird. Es ist möglich, dass Google diese API offiziell einführt (wenn sie tatsächlich fertig ist), sobald Android 8.1 verfügbar ist. Gleichzeitig können sie sich sogar dafür entscheiden, diese Funktion über die Android Support Library unterstützen zu lassen, um sie auf frühere Android-Versionen zu übertragen. In diesem Fall müssen Benutzer nicht Monate warten, um eine solche Funktion nutzen zu können (wir empfehlen Benutzern jedoch immer, eine der vielen benutzerdefinierten ROMs zu testen, die in unseren großartigen Foren verfügbar sind).

Dennoch dürfte dies eine spannende Nachricht für Fans der Aktiensoftware auf ihrem Handy sein. Hoffentlich müssen Sie nicht auf Benutzer mit Apple, Samsung, Huawei, LG und anderen Geräten eifersüchtig sein, die über diese raffinierte Funktion verfügen, die in Android schon vor langer, langer Zeit verfügbar sein sollte. Angesichts der jüngsten Unterstützung für die Idee bei Reddit sind wir sicher, dass dies eine willkommene Funktion sein wird - wenn es irgendwann darum geht, Android auf Lager zu halten.