Impostare un blocco di attivazione

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:

  1. Chiama PowerManager.newWakeLock() per creare un wake lock. In questo modo viene creato e configurato un oggetto PowerManager.WakeLock, ma il dispositivo non viene mantenuto attivo.

  2. 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.

Vedi anche