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,

Почему не обновляется статус при отправке обновленной трансляции?

0 ответов

Другие вопросы по тегам