Vous pouvez définir un verrouillage d'activation pour maintenir temporairement l'appareil en veille.
Dépendances
Votre application doit disposer de l'autorisation WAKE_LOCK
pour définir un wake lock.
Ajoutez l'autorisation au fichier manifeste de votre application:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Créer et acquérir un wake lock
Pour acquérir un wake lock, procédez comme suit:
Appelez
PowerManager.newWakeLock()
pour créer un wake lock. Cela crée et configure un objetPowerManager.WakeLock
, mais ne maintient pas l'appareil éveillé.Lorsque vous souhaitez maintenir l'appareil allumé, appelez la méthode
acquire()
de l'objet wakelock.
Par exemple, si votre application inclut un broadcast receiver qui utilise un service pour effectuer une tâche, vous pouvez utiliser ce code pour définir et acquérir 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);
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 wake lock, il utilise le nom de la classe dans la balise wake lock. Nous vous recommandons d'inclure le nom du package, de la classe ou de la méthode dans la balise de wakelock. De cette façon, en cas d'erreur, il est plus facile de localiser le verrouillage de réveil dans votre code source. Pour en savoir plus, consultez la section Nommer correctement le verrouillage de réveil.