众所周知,Android充电模式有两种,一种是插入usb充电,也即连接电脑充电,一种是插入充电器充电,也即(AC充电)
这两种模式区别是前者可以被调试或者做一些文件的操作,后者只是单纯的充电。判断这两种模式的方法也很简单,使用如下函数即可:
public boolean acCharge(Context context) {
try {
Intent batteryBroadcast = context.registerReceiver(null,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// 0 means we are discharging, anything else means charging
boolean isCharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0;
int chargePlug = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
return acCharge;
} catch (Throwable t) {
MobLog.getInstance().d(t);
}
return false;
}
public boolean usbCharge(Context context) {
try {
Intent batteryBroadcast = context.registerReceiver(null,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// 0 means we are discharging, anything else means charging
boolean isCharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0;
int chargePlug = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
return usbCharge;
} catch (Throwable t) {
MobLog.getInstance().d(t);
}
return false;
}
注:
本文参考Android官方开发文档