Вы можете установить функцию блокировки спящего режима , чтобы временно удерживать устройство в активном состоянии.
Зависимости
Для установки блокировки пробуждения у вашего приложения должно быть разрешение WAKE_LOCK
. Добавьте это разрешение в манифест приложения:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Создать и получить блокировку пробуждения
Чтобы получить блокировку пробуждения, выполните следующие действия:
Вызовите
PowerManager.newWakeLock()
для создания блокировки пробуждения. Это создаёт и настраивает объектPowerManager.WakeLock
, но фактически не поддерживает устройство в состоянии бодрствования.Если вы хотите, чтобы устройство оставалось в спящем режиме, вызовите метод
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();
Ключевые моменты этого кода
Когда код создаёт объект блокировки пробуждения, имя класса используется как часть тега блокировки пробуждения. Мы рекомендуем включить имя вашего пакета, класса или метода в тег блокировки пробуждения. Таким образом, в случае возникновения ошибки будет проще найти блокировку пробуждения в исходном коде. Подробнее см. в разделе «Как правильно называть блокировку пробуждения» .