如何知道手机是否正在充电

我需要知道(通过我的应用程序)Android设备是否正在充电。 有任何想法吗? 谢谢

我发现的一件事是,如果你的手机有100%的电池电量,你将无法收到充电通知。 有些人意味着充电,而其他人则意味着它具有外部动力,无论是否为100%。 我将这些集中在一个,如果有任何条件是真的,那么我返回true。

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; } 

这是有效的代码:

 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; 
  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); }