Możesz ustawić blokadę wybudzania, aby tymczasowo utrzymać urządzenie w stanie aktywności.
Zależności
Aby ustawić blokadę wybudzania, aplikacja musi mieć uprawnienie WAKE_LOCK
.
Dodaj uprawnienia do pliku manifestu aplikacji:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Tworzenie i uzyskiwanie blokady wybudzania
Aby uzyskać blokadę wybudzania, wykonaj te czynności:
Wywołaj funkcję
PowerManager.newWakeLock()
, aby utworzyć blokadę wybudzania. Spowoduje to utworzenie i skonfigurowanie obiektuPowerManager.WakeLock
, ale nie zapobiegnie uśpieniu urządzenia.Jeśli chcesz, aby urządzenie nie przechodziło w stan uśpienia, wywołaj metodę
acquire()
obiektu blokady wybudzania.
Jeśli na przykład Twoja aplikacja zawiera odbiornik transmisji, który używa usługi do wykonania pewnych działań, możesz użyć tego kodu, aby ustawić i uzyskać blokadę wybudzania:
Kotlin
val wakeLock: PowerManager.WakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply { acquire() } }
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag"); wakeLock.acquire();
Najważniejsze informacje o tym kodzie
Gdy kod tworzy obiekt blokady wybudzania, używa nazwy klasy jako części tagu blokady wybudzania. Zalecamy, aby tag blokady wybudzania zawierał nazwę pakietu, klasy lub metody. Dzięki temu w przypadku wystąpienia błędu łatwiej będzie znaleźć blokadę wybudzania w kodzie źródłowym. Więcej informacji znajdziesz w artykule Prawidłowe nazywanie blokad wybudzania.