Android - Activation du système de verrouillage du clavier (écran aka verrouillage)
-
06-09-2019 - |
Question
Je dois activer le verrouillage des touches du système android (celui que vous obtenez lorsque vous appuyez sur la hors tension / bouton raccrocher ). Voir ici:
Je l'ai déjà parcouru les documents, mais tout ce que je trouvais était PowerManager et KeyguardManager . Les deux semblent ne pas être la solution: - (
.Alors, est-tout le monde sait comment y parvenir à partir d'une application android? (Si les autorisations spéciales sont nécessaires, ce n'est pas problème, mais de modifier les paramètres de l'appareil est une solution ...)
EDIT : Ou que quelqu'un sait que cela est certainement pas possible? BTW. solution Craigs avec l'envoi de clés ne fonctionne plus (voir les commentaires).
La solution
je cherche une réponse à la pendant un certain temps exactement la même question. Apparemment, après 2.0 et suivantes les privilèges de gestionnaire de périphériques pour le niveau d'application ont été supprimés. Mais avec Froyo -. 2.2 du gestionnaire de la politique de l'appareil est révélé nous accordant aux développeurs une multitude de contrôles de niveau administratif
http://developer.android.com/guide/topics/ admin / dispositif de admin.html
Autres conseils
Il y a un très bon exemple ici:
http://www.anddev.org/throwing-simulating_keystrokes_programatically-t717.html
Il semble que vous pouvez faire une combinaison de touches programme à envoyer au système. On dirait que le code d'activation que vous cherchez est le KEYCODE_ENDCALL, mais si cela ne fonctionne pas, il y a beaucoup d'autres codes pour essayer ici:
http://developer.android.com/reference/android/view /KeyEvent.html
Je ne sais pas s'il y a un appel d'API pour provoquer le blocage de se produire, mais cela semble être une solution assez robuste jusqu'à trouver une meilleure solution.
En fouillant dans la source Android trouvé WindowManagerService qui semble avoir une méthode publique (startAppFreezingScreenLocked
) pour activer ce. Cela peut être un bon endroit pour commencer à chercher votre réponse, car il ne semble malheureusement pas comme si vous pouvez obtenir directement un objet WindowManagerService.