Тревога не срабатывает на устройствах Redmi - PullRequest
2 голосов
/ 21 января 2020

У меня есть приложение тревоги. Тревога не срабатывает на устройствах 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, чтобы работать, когда приложение находится в фоновом режиме, и прагматично активировать блокировку экрана или любое другое решение для решения этой проблемы?

...