Это очень сложно question.The код, связанный с Android Developer имеет ошибку.
В принципе, вы можете узнать, как обнаружить его по этой ссылке:
https://developer.android.com/training/monitoring-device-state/battery-monitoring.html
Вы можете обнаружить ли он заряжается или не заряжается и низкий заряд батареи или нет вещательного приемника, используя метод OnReceive (контекст контекст, намерение намерение) {}
Однако, есть ошибка в этой связи, для мониторинга существенных изменений. [Обратите внимание здесь, имя действия android.intent.action.ACTION_BATTERY_LOW]
[1]
Но посмотрим, как это описано в намерении.
ACTION_BATTERY_LOW
Добавлено в уровне API 1 Строка ACTION_BATTERY_LOW Broadcast Действие: Показывает низкое состояние батареи на устройстве. Эта трансляция соответствует диалоговому окну «Предупреждение о низком заряде батареи».
Это защищенный объект, который может быть отправлен системой.
Постоянное значение: «android.intent.action.BATTERY_LOW» Вы можете найти это в Android Developers Intent.
Иными словами, здесь случается ошибка. Следует action.BATTERY_LOW вместо action.ACTION_BATTERY_LOW.So ваш код в AndroidManifest должно быть:
<receiver android:name=".receiver.BatteryLevelReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_LOW"/>
<!--instead of android.intent.action.ACTION_BATTERY_LOW-->
</intent-filter>
</receiver>
Кроме того, убедитесь у вас есть приемник правильно.
public class BatteryLevelReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "BAttery's dying!!", Toast.LENGTH_LONG).show();
Log.e("", "BATTERY LOW!!");
}
}
Это отлаживать вольно сложном или получить вход на вашем ноутбуке, использование Тост может помочь.
Toast.makeText(context, "BAttery's dying!!", Toast.LENGTH_LONG).show();
//Toast.makeText(Context context, String str, Integer integer).show();
Надеюсь, это поможет решить вашу проблему.
Почему бы просто не проверить батарею при запуске приложения? – tyczj
Потому что я не знаю, на каком уровне система заявляет о низком заряде батареи или нет. –
15% - предупреждение о низком заряде батареи для системы. – tyczj