2011-06-05 296 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; 
}