1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Batterie Status abfragen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von keinbrain, 21.03.2012.

  1. keinbrain, 21.03.2012 #1
    keinbrain

    keinbrain Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    316
    Erhaltene Danke:
    21
    Registriert seit:
    07.03.2012
    Hi, ich bins mal wieder mit einem weiteren Problem an meiner Multifunktionsapp^^ Wie kann ich den Akkustatus abrufen, bzw das Level des akkus. In was wird das überhaupt ausgegeben, in Prozent?
    Mein Ansatz von der Seite BatteryManager | Android Developers einfach

    String readin1 = android.os.BatteryManager.EXTRA_LEVEL;

    zu benutzen , hat leider nicht hingehauen, er gibt mir immer " level " aus :/

    Ich hoffe ihr könnt mir sagen wie ich das Problem lösen kann ,und bitte nicht hierrauf Tutorial For Android: Getting Battery Information on Android verweisen, danke :D
     
  2. Unicate, 22.03.2012 #2
    Unicate

    Unicate Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Das ist wohl nicht so einfach. Aber schau mal hier.
     
  3. strider, 22.03.2012 #3
    strider

    strider Erfahrener Benutzer

    Beiträge:
    208
    Erhaltene Danke:
    45
    Registriert seit:
    30.09.2011
    Phone:
    Nexus S
    Der Status wird über einen sticky Broadcast ständig mitgeteilt. Alles was du zu tun hast ist einen Broadcast receiver in deiner App einzurichten der auf
    Intent.ACTION_BATTERY_CHANGED

    lauscht.

    Beispielcode findest du in den unzähligen open source Batterie Widgets.
    z.B.
    slw-battery-widget - Android Simple Lightweight Battery Widget / Cpu Widget / Storage Widget / Wlan Scan Widget / Gps Widget / Traffic Meter Widget / Cache Cleaner Widget / Audio Volume Widget / App History Widget - Google Project Hosting
     
  4. miha, 22.03.2012 #4
    miha

    miha Fortgeschrittenes Mitglied

    Beiträge:
    294
    Erhaltene Danke:
    43
    Registriert seit:
    12.01.2010
    Da der Intent sticky ist muss man eben gerade nicht unbedingt einen receiver laufen lassen sondern kann auch pollen.

    Code:
    Context c = getApplicationContext();
    Intent batteryIntent = c.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    int rawlevel = batteryIntent.getIntExtra("level", -1);
    double bscale = batteryIntent.getIntExtra("scale", -1);
    double level = -1;
    if (rawlevel >= 0 && bscale > 0)
        level = rawlevel / bscale;         
    
    level * 100.0 ist dann die Temperatur in Grad.
     

Diese Seite empfehlen