состояние батареи на ACTION_POWER_CONNECTED

#android #battery

#Android #батарея

Вопрос:

Мне просто интересно, есть ли какая-либо возможность получить состояние батареи в классе широковещательного приемника, который запускается в ACTION_POWER_CONNECTED? Документация не предполагает, но всегда стоит спросить 🙂

Приветствую Рэя

Ответ №1:

Позвони registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)) . Intent Возвращаемая передача — это последняя трансляция ACTION_BATTERY_CHANGED , в дополнительных настройках которой указано состояние вашей батареи (ключи см. BatteryManager ).

Если вы решите, что вызываете его слишком рано, он ACTION_POWER_CONNECTED вызывается до того, как ACTION_BATTERY_CHANGED будет обновлен, возможно, используйте AlarmManager , чтобы запланировать повторное пробуждение через несколько секунд, а затем проверьте еще раз.

Комментарии:

1. Спасибо за ответ, я уже пробовал это, но я получил сообщение об ошибке, что я не могу зарегистрировать трансляцию с другого BroadcastReceiver. Я нашел в ссылке, что BroadcastReceiver может зарегистрировать другого получателя только в том случае, если первый не объявлен в файле манифеста. Это заставляет меня переосмыслить программу… В любом случае, спасибо!

2. @Ray: Извините, вызов, context.getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)) где context — контекст, в который был передан onReceive() . Подробнее: commonsware.com/blog/2010/09/12 /…

3. Почему при регистрации этого приемника вы получаете 8-10 уведомлений о замене батареи?