ACTION_BATTERY_CHANGED не обновляет EXTRA_STATUS устройства
Я использую ACTION_BATTERY_CHANGED
Интент-фильтр для приема широковещательных сообщений от Android.
Я использую следующий код
IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = registerReceiver(batteryLevelReceiver, batteryLevelFilter);
BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent){
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
Log.e(TAG,String.valueOf(status));
Toast.makeText(MainActivity.this, String.valueOf(status), Toast.LENGTH_SHORT).show();
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
status == BatteryManager.BATTERY_STATUS_FULL;
float battPct = (level/(float)scale) * 100;
txtBatteryPercentage.setText(String.valueOf(battPct));
txtBatteryStatus.setText(String.valueOf(isCharging));
if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
}else {
mediaPlayer.seekTo(0);
mediaPlayer.start();
}
}
};
Здесь я проверяю состояние зарядки аккумулятора, как описано в официальной документации Android.
Когда я запускаю приложение в режиме зарядки, оно дает мне EXTRA_STATUS
значения как 2 т.е. BATTERY_STATUS_CHARGING
что ожидается. Но когда отсоединяешь зарядное устройство от устройства и получаешь другую трансляцию с андроида, он все равно присылает мне такой же статус, как будто заряжается. Ожидалось, будет прислать мне статус BATTERY_STATUS_NOT_CHARGING
,
Почему не обновляется статус при отправке обновленной трансляции?