Aller au contenu

Mode veille / verrouillage


Pierre87

Recommended Posts

Hello!

Je cherche à faire une appli qui passe le téléphone en veille/verrouillage quand on la lance.

Problème : c'est quasi impossible :D

J'ai trouvé une appli qui fait à peu près ce que je veux, mais d'une manière très crade : LockEnabler

Je reviendrai sur ce point plus tard.

La fonction la plus simple pour mettre le téléphone en veille est PowerManager.goToSleep(long)

http://developer.and...#goToSleep(long)

Le problème, c'est que j'ai un message d'erreur me disant que la permission DEVICE_POWER n'est pas disponible pour mon utilisateur (celui de l'appli quoi)

Il semble que cette fonction soit réservée aux appli "système".

On peut la voir utilisée ici, dans la ROM Cyanogen : http://github.com/CyanogenMod/android_frameworks_base/blob/froyo/services/java/com/android/server/status/widget/SleepButton.java

Pour créer une appli système, ça nécessite de signer l'appli avec la même clé que la ROM, chose que je ne trouve pas pour Cyanogen

(et qui m'obligerait à faire une version par ROM)

Reste la possibilité de le faire en mode root, mais je ne connais pas la commande shell permettant d'émuler ça.

Il y a bien la commande "am", qui permet de démarrer des Activity, mais c'est toujours lancé avec l'utilisateur de l'appli.

On ne peut pas bien sûr changer l'utilisateur de l'appli à la volée

(ça obligerait à "augmenter" les droits de l'appli, impossible sur Linux)

Pour en revenir à LockEnabler et sa solution crade, voilà ce qui est fait :

- extinction de l'écran via WindowManager.LayoutParams

- on passe le temps de mise en veille du téléphone à 15 secondes (valeur minimum)

- on attend 15 secondes

- on ferme l'activity qui a changé screenBrightness (ce qui a pour effet de remettre une luminosité normale)

- on remet le temps de mise en veille à la valeur initiale

Problème : si on essaye de rallumer le téléphone avec les 15 secondes, ça a l'effet inverse, et le met en veille :D (normal)

Vous avez des idées?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...