У меня есть приложение, которое показывает, заряжается ли устройство Android от вилки, USB-кабеля, беспроводного устройства или вообще не заряжается. Я использую приведенный ниже код, он будет отображать правильный метод зарядки (если есть), пока я не зарядлю свой телефон (с Android 4.1) или планшет (с Android 4.3) от зарядного устройства USB в автомобиле. Он скажет, что заряжается от вилки, когда должен сказать, что это USB-устройство. В чем причина этого?
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = registerReceiver(null, filter);
int chargeState = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
if(chargeState == BatteryManager.BATTERY_PLUGGED_USB)
{
chargingBy = "charging via usb cable";
}
else if (chargeState == BatteryManager.BATTERY_PLUGGED_AC)
{
chargingBy = "charging via plug";
}
else if (chargeState == BatteryManager.BATTERY_PLUGGED_WIRELESS)
{
chargingBy = "charging via wireless device";
}
else
{
chargingBy = "not charging";
}