Установить блокировку пробуждения

Вы можете установить функцию блокировки спящего режима , чтобы временно удерживать устройство в активном состоянии.

Зависимости

Для установки блокировки пробуждения у вашего приложения должно быть разрешение WAKE_LOCK . Добавьте это разрешение в манифест приложения:

<uses-permission android:name="android.permission.WAKE_LOCK" />

Создать и получить блокировку пробуждения

Чтобы получить блокировку пробуждения, выполните следующие действия:

  1. Вызовите PowerManager.newWakeLock() для создания блокировки пробуждения. Это создаёт и настраивает объект PowerManager.WakeLock , но фактически не поддерживает устройство в состоянии бодрствования.

  2. Если вы хотите, чтобы устройство оставалось в спящем режиме, вызовите метод acquire() объекта блокировки пробуждения.

Например, если ваше приложение включает в себя приемник вещания, который использует службу для выполнения какой-либо работы, вы можете использовать этот код для установки и получения блокировки пробуждения:

Котлин

val wakeLock: PowerManager.WakeLock =
    (getSystemService(Context.POWER_SERVICE) as PowerManager).run {
        newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply {
            acquire()
        }
    }

Ява

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
PowerManager.WakeLock wakeLock =
        powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag");
wakeLock.acquire();

Ключевые моменты этого кода

Когда код создаёт объект блокировки пробуждения, имя класса используется как часть тега блокировки пробуждения. Мы рекомендуем включить имя вашего пакета, класса или метода в тег блокировки пробуждения. Таким образом, в случае возникновения ошибки будет проще найти блокировку пробуждения в исходном коде. Подробнее см. в разделе «Как правильно называть блокировку пробуждения» .

Смотрите также