Программирование для Android: контроль уровня заряда аккумулятора устройства

Проблема

Вы хотите определить уровень заряда аккумулятора на устройстве Android, что­бы можно было уведомить пользователя, когда уровень заряда батареи станет ниже определенного порога, что позволяет избежать неожиданных сюрпризов.

Решение

Широковещательный приемник, который принимает широковещательное сооб­щение, отправленное при изменении состояния батареи, может идентифицировать уровень заряда батареи и выдавать оповещения пользователям.

Обсуждение

Иногда нам нужно показывать предупреждение пользователю, когда уровень за­ряда аккумулятора устройства Android становится ниже определенного предела. Код в примере 1 устанавливает широковещательное сообщение, которое должно быть отправлено, когда уровень заряда батареи изменяется, и создает широковещатель­ный приемник для приема широковещательного сообщения, который может предуп­реждать пользователя, когда аккумулятор разряжается ниже определенного уровня.

Пример 1. Класс MainActivity

public class MainActivity extends Activity {

 /** Вызывается при первом создании активности. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);

     /** Регистрирует получателя широковещательного сообщения,
      *	которое рассылается, когда заряд батареи изменяется. */


     this.registerReceiver(this.myBatteryReceiver,
       new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

  /** Константа Intent.ACTION_BATTERY_CHANGED заменяется константой
   *	Intent.ACTION_BATTERY_LOW, чтобы получать сообщение, только
   *	когда уровень заряда батареи ниже порога, вместо того чтобы
   *	рассылать широковещательное сообщение при каждом изменении заряда
   *	батареи.
   *	Существует также константа ACTION_BATTERY_OK для случая, когда
   *	уровень заряда батареи превышает нижний порог.
   */

 }

 private BroadcastReceiver myBatteryReceiver =
    new BroadcastReceiver() {

   @Override
   public void onReceive(Context ctx, Intent intent) {
    // bLevel is battery percent-full as an integer
    int bLevel = intent.getIntExtra("level", 0);
    Log.i("BatteryMon", "Level now " + bLevel);
   }
 };
}

Константы action_battery_low и action_battery_ok не документированы и настраиваются только путем перестройки операционной системы, но они могут со­ставлять около 10 и 15 или 15 и 20 соответственно.

 

Вас заинтересует / Intresting for you:

Версии платформы Android
Версии платформы Android 2477 просмотров Илья Дергунов Sun, 04 Nov 2018, 14:44:59
О платформе Android
О платформе Android 4857 просмотров Илья Дергунов Mon, 29 Oct 2018, 17:07:02
Источники примеров кода для со...
Источники примеров кода для со... 3534 просмотров Валерий Павлюков Sat, 24 Nov 2018, 12:19:04
Как получить скриншот экрана и...
Как получить скриншот экрана и... 3561 просмотров Валерий Павлюков Sun, 25 Nov 2018, 09:41:39
Войдите чтобы комментировать