我试图在应用上显示手机是否通过插头,USB线充电或根本不充电。我正在使用下面的代码,如果我使用USB电缆,它将显示“通过usb电缆充电”,如果手机电池已充满或未充电,则显示“未充电”。但是当我通过插头给手机充电时,它会显示“通过usb线充电”。我使用普通的交流插头充电器而不是交流插头充电器,你可以用USB电缆(如果这很重要)。为什么会这样?
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = registerReceiver(null, filter);
int chargeState = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
if(chargeState == BatteryManager.BATTERY_PLUGGED_USB)
{
chargingBy = "charging via usb cable";
}
else if (chargeState == BatteryManager.BATTERY_PLUGGED_AC)
{
chargingBy = "charging via plug";
}
else
{
chargingBy = "not charging";
}
答案 0 :(得分:1)
有三种不同类型的USB端口:
前两个可以在您的计算机上找到,第三种适用 “哑”墙充电器
您正在测试哪种手机型号?
EXTRA_STATUS
不习惯了解设备的充电方式
使用EXTRA_PLUGGED
代替