2011-06-05 294 views

回答

5

下面是工作代碼:

Intent bat = loader.registerReceiver(null, new 
     IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
int level = bat.getIntExtra("level", 0); 
int scale = bat.getIntExtra("scale", 100); 
return level * 100/scale; 
+0

我怎麼知道電池電量?謝謝 – Gnufabio 2011-06-05 19:45:57

0
public static boolean isBatteryCharging(Context context){ 
    // Check battery sticky broadcast 
    final Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
    return (batteryIntent.getIntExtra(BatteryManager.EXTRA_STATUS, -1) == BatteryManager.BATTERY_STATUS_CHARGING); 
} 
8

有一件事我發現是,如果你的手機有100%的電量,你不會得到充電通知。有些人指的是充電和其他人的意思,當它有外部的力量,無論是否100%。我把這些歸入一個,如果任何情況是真的,那麼我會回報真實的。

public static boolean isPhonePluggedIn(Context context){ 
    boolean charging = false; 

    final Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
    int status = batteryIntent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 
    boolean batteryCharge = status==BatteryManager.BATTERY_STATUS_CHARGING; 

    int chargePlug = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); 
    boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; 
    boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; 

    if (batteryCharge) charging=true; 
    if (usbCharge) charging=true; 
    if (acCharge) charging=true; 

    return charging; 
}