Как изменить запуск события по проценту заряда батареи? - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь вызвать какой-то код при изменении процента заряда батареи в фоновом режиме.

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

1 Ответ

0 голосов
/ 16 июня 2020

Вы можете контролировать уровень заряда батареи

// Get the status
val batteryStatus: Intent? = IntentFilter(Intent.ACTION_BATTERY_CHANGED).let { ifilter ->
    context.registerReceiver(null, ifilter)
}

// Get the battery level percentage
val batteryPct: Float? = batteryStatus?.let { intent ->
    val level: Int = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1)
    val scale: Int = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1)
    level * 100 / scale.toFloat()
}

Из do c относительно широковещательных приемников

'Потому что это липкий намерение, вам не нужно регистрировать BroadcastReceiver - просто вызывая registerReceiver, передавая null в качестве получателя, как показано в следующем фрагменте, возвращается намерение текущего состояния батареи. '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...