Ich versuche, den Akkustand von einem Dienst zu erhalten. Ich werde erfolgreich Level. Aber ich habe ein Problem. Und das ist , wenn ich versuche, zum ersten Mal den Akkustand zu bekommen, dann bekomme ichnull. Aber wenn ich nach ein paar Sekunden später frage, dann bekomme ich genaues Niveau. Ich verstehe nicht, warum das passiert.Android - Ermitteln des Akkuladestands bei der ersten Anfrage
Hier ist mein Code Ladezustand der Batterie zu erhalten: -
String bLevel;
private String getBatteryLevel(){
BroadcastReceiver cBReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
context.unregisterReceiver(this);
int currentLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int currentScale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
int batteryLevel;
if (currentLevel >= 0 && currentScale > 0) {
batteryLevel = (currentLevel * 100)/currentScale;
bLevel = Integer.toString(batteryLevel) + " percent";
}
}
};
IntentFilter cIFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(cBReceiver, cIFilter);
return bLevel;
}
den Code Bitte beachten Sie. Ich weiß nicht, warum ich null als mein Batterie-Level bekomme, wenn ich zum ersten Mal frage. Bitte helfen
Ich würde empfehlen, einen BroadcastReceiver nicht in eine Methode zu packen. – Distjubo
Oder MINDESTENS unregistrieren ... – Distjubo