Définir un wakelock

Vous pouvez définir un verrouillage de réveil pour maintenir temporairement l'appareil en éveil.

Dépendances

Votre application doit disposer de l'autorisation WAKE_LOCK pour définir un verrouillage de réveil. Ajoutez l'autorisation au fichier manifeste de votre application :

<uses-permission android:name="android.permission.WAKE_LOCK" />

Créer et acquérir un verrouillage de réveil

Pour acquérir un verrouillage de réveil, procédez comme suit :

  1. Appelez PowerManager.newWakeLock() pour créer un verrouillage de réveil. Cela crée et configure un objet PowerManager.WakeLock, mais ne maintient pas réellement l'appareil en éveil.

  2. Lorsque vous souhaitez maintenir l'appareil en éveil, appelez la méthode acquire() de l'objet wake lock.

Par exemple, si votre application inclut un récepteur de diffusion qui utilise un service pour effectuer certaines tâches, vous pouvez utiliser ce code pour définir et acquérir un verrouillage de réveil :

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();

Points clés concernant ce code

Lorsque le code crée l'objet de verrouillage de réveil, il utilise le nom de la classe comme partie de la balise de verrouillage de réveil. Nous vous recommandons d'inclure le nom du package, de la classe ou de la méthode dans la balise de wakelock. Ainsi, en cas d'erreur, il est plus facile de localiser le verrouillage de réveil dans votre code source. Pour en savoir plus, consultez Nommer correctement le verrouillage de réveil.

Voir aussi