Вы можете установить блокировку пробуждения, чтобы устройство временно не переходило в спящий режим.
Связанные запросы
Чтобы устанавливать блокировку пробуждения, приложению требуется разрешение WAKE_LOCK.
Добавьте разрешение в манифест приложения:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Как создать и получить блокировку пробуждения
Чтобы получить блокировку пробуждения, выполните следующие действия:
Вызовите
PowerManager.newWakeLock(), чтобы создать блокировку пробуждения. Этот код создает и настраивает объектPowerManager.WakeLock, но не предотвращает переход устройства в спящий режим.Чтобы устройство не переходило в спящий режим, вызовите метод
acquire()объекта запрета блокировки.
Например, если в вашем приложении есть приемник широковещательных передач, который использует службу для выполнения каких-либо действий, вы можете использовать следующий код, чтобы установить и получить блокировку пробуждения:
Kotlin
val wakeLock: PowerManager.WakeLock = (getSystemService(POWER_SERVICE) as PowerManager).run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply { acquire(WAKELOCK_TIMEOUT) } }
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag"); wakeLock.acquire(WAKELOCK_TIMEOUT);
Важная информация об этом коде
Когда код создает объект блокировки пробуждения, он использует название класса как часть тега блокировки пробуждения. Рекомендуем включить в тег блокировки пробуждения название пакета, класса или метода. Так вам будет проще найти блокировку пробуждения в исходном коде, если возникнет ошибка. Подробнее о том, как правильно назвать блокировку пробуждения…
Функции
WakeLock.acquire(long)передается значение времени ожидания в миллисекундах. Система снимает блокировку пробуждения по истечении этого времени, если вы не сделали этого раньше.