Puoi impostare un wake lock per mantenere temporaneamente attivo il dispositivo.
Dipendenze
La tua app deve disporre dell'autorizzazione WAKE_LOCK
per impostare un wake lock.
Aggiungi l'autorizzazione al manifest della tua app:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Creare e acquisire un wake lock
Per acquisire un wake lock:
Chiama
PowerManager.newWakeLock()
per creare un wake lock. In questo modo viene creato e configurato un oggettoPowerManager.WakeLock
, ma il dispositivo non viene mantenuto attivo.Quando vuoi mantenere attivo il dispositivo, chiama il metodo
acquire()
dell'oggetto di blocco della riattivazione.
Ad esempio, se la tua app include un ricevitore di trasmissione che utilizza un servizio per eseguire alcune operazioni, puoi utilizzare questo codice per impostare e acquisire un wake lock:
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();
Punti chiave di questo codice
Quando il codice crea l'oggetto wake lock, utilizza il nome della classe come parte del tag wake lock. Ti consigliamo di includere il nome del pacchetto, della classe o del metodo come parte del tag di riattivazione. In questo modo, se si verifica un errore, è più facile individuare il wake lock nel codice sorgente. Per ulteriori informazioni, vedi Assegnare un nome corretto al wake lock.