Auf dieser Seite wird beschrieben, wie Android mit Produkten umgeht, die entweder herausnehmbare Akkus oder keine internen Akkus haben. Letztere Geräte werden stattdessen an eine externe Stromquelle angeschlossen, z. B. an eine Steckdose oder einen USB-Port eines anderen Geräts.
Ist eine Batterie vorhanden?
Der folgende Code kann von Anwendungen verwendet werden, um zu erkennen, ob das Gerät Akku vorhanden:
```
final Intent batteryInfo = registerReceiver(null, new
IntentFilter(Intent.ACTION_BATTERY_CHANGED));
return batteryInfo.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true);
```
Verhalten bei akkubetriebenen Geräten
Wenn Android kein akkubetriebenes Gerät für Ihr Produkt erkennt, gehen Sie so vor: akkubezogene Standardwerte werden verwendet. Beachten Sie, dass sich die Standardeinstellungen in der Android 9 wird veröffentlicht. Diese Tabelle zeigt die Unterschiede.
Akkustatus | Android 9 und höher | Android 8.1 und niedriger |
---|---|---|
Präsentieren | false | wahr |
Status | unbekannt | wird geladen |
Verbleibende Kapazität | 0 | 100 % |
Gesundheit | unbekannt | good |
Onlinestatus des AC-Ladegeräts | nicht geändert | auf „true“ festgelegt |
Hersteller können die Standardeinstellungen mit einem Kernel ändern Stromversorgung oder Health HAL.
Android 9 und höher
Bei Android 9 wird Code für ein akkubetriebenes Gerät entfernt die standardmäßig eine Batterie vorgetäuscht haben, werden 100 % erreicht hat und bei normaler Temperaturmessung Thermistor.
Die meisten Framework-APIs, die mit diesen Informationen umgehen, behandeln gängige Situationen weiterhin wie bisher: Das System wird als in Ladung betrachtet (d. h. es wird nicht mit Akku betrieben) und es wird nicht als „niedriger Akkustand“ eingestuft. Wenn auf der Benutzeroberfläche das Akkusymbol erscheint, mit einem Ausrufezeichen angezeigt und der Akkustand als 0%. Das Gerät wird jedoch nicht aufgrund eines niedrigen Akkustands heruntergefahren und Aufgaben, die ein Aufladen oder einen guten Akku erfordern, werden geplant.
Android 8.1 und niedriger
Da der Akkustatus unbekannt ist, berücksichtigen die Android-Framework-APIs das System auflädt (oder nicht mit Akku betrieben wird) und eine niedrige Batterieleistung. Wenn das Akkusymbol auf der Benutzeroberfläche angezeigt wird, wird es mit einem Ausrufezeichen und einem Akkustand von 0 % dargestellt. Das Gerät wird jedoch nicht aufgrund eines niedrigen Akkustands heruntergefahren und Aufgaben, die ein Aufladen oder einen ausreichenden Akkustand erfordern, werden geplant.
Implementierung
Der Android 9-Standardcode funktioniert möglicherweise Gerät. Es wird jedoch empfohlen, entweder einen Kernel oder eine HAL-Änderung die Angaben zur Leistung und zum Akkuzustand Ihres Produkts, wie beschrieben, oben. Wenn Android 9 und höher kein Linux-Netzteil erkennt Kurs wird bei allen Ladegeräten (AC, USB, kabellos) standardmäßig Status offline. Wenn alle Ladegeräte offline sind, aber kein Akku vorhanden ist erkannt wird, gilt das System trotzdem in dem Sinne, dass Es wird wie oben beschrieben extern und nicht über den Akku betrieben.
Wenn Ihr Produkt keinen Akku hat und immer an eine Stromquelle angeschlossen ist
Quelle ist es am besten, den Linux-Kernel-Dienst „power_supply“ charger zu implementieren.
Treiber für die Stromquelle, der das Attribut online sysfs
festlegt
an true
. Oder du kannst das Netzteil online in einem Health-HAL konfigurieren
für dein Gerät. Implementieren Sie dazu einen Health HAL wie unter Implementierung von
Gesundheit 2.0.
Diese benutzerdefinierte Health HAL implementiert eine benutzerdefinierte Version von Health::getHealthInfo()
, die den Wert von BatteryProperties.chargerAcOnline = true
ändert.
Kopiere die Datei, um zu beginnen
hardware/interfaces/health/2.0/default/Health.cpp
an Ihre eigene Health HAL-Implementierung anpassen und sie gemäß der Health 2.0-Implementierung
README-Datei.