У меня есть приложение тревоги. Тревога не срабатывает на устройствах Redmi. Блокировка экрана и звонок, когда приложение работает в фоновом режиме, не работает точно.
Найдите диспетчер аварийных сигналов и код блокировки пробуждения, которые я использовал
a)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setExactAndAllowWhileIdle(
AlarmManager.RTC_WAKEUP,
alarmTime,
operation
)
} else {
alarmManager.setExact(
AlarmManager.RTC_WAKEUP,
alarmTime,
operation
)
б)
val wakeLock = pm.newWakeLock(
PowerManager.SCREEN_BRIGHT_WAKE_LOCK or PowerManager.FULL_WAKE_LOCK or PowerManager.ACQUIRE_CAUSES_WAKEUP,
"a:TAG"
)
if (Build.VERSION.SDK_INT >= 27) {
setShowWhenLocked(true)
setTurnScreenOn(true)
}
wakeLock.acquire(10 * 60 * 1000L /*10 minutes*/)
window.addFlags(
LayoutParams.FLAG_SHOW_WHEN_LOCKED or
LayoutParams.FLAG_DISMISS_KEYGUARD or
LayoutParams.FLAG_KEEP_SCREEN_ON or
LayoutParams.FLAG_TURN_SCREEN_ON
)
Я обнаружил, что когда мы разрешаем блокировку экрана и разрешаем запуск в фоновом режиме, приложение работает. Есть ли способ добавить указанное разрешение для устройств Redmi, чтобы работать, когда приложение находится в фоновом режиме, и прагматично активировать блокировку экрана или любое другое решение для решения этой проблемы?