Dans la nouvelle version d'Android L Preview, Google a annoncé le verrouillage de tâches, qui fait exactement cela. Il semble cependant qu'il ait besoin de root.
La version de développement L introduit une nouvelle API de verrouillage de tâches qui vous permet de restreindre temporairement les utilisateurs à quitter votre application ou d'être interrompus par des notifications. Cela pourrait être utilisé, par exemple, si vous développez une application éducative pour répondre aux exigences d'évaluation à haut risque sur Android. Une fois que votre application active ce mode, les utilisateurs ne pourront pas voir les notifications, accéder à d'autres applications ou revenir à l'écran d'accueil, tant que votre application n'a pas quitté le mode.
Pour éviter une utilisation non autorisée, seules les applications autorisées peuvent activer le verrouillage de tâches. De plus, l'autorisation de verrouillage de tâches doit être accordée par une application propriétaire spécialement configurée, via la méthode android.app.admin.DevicePolicyManager.setLockTaskComponents()
.
Pour configurer un propriétaire de périphérique, suivez ces étapes :
- Associez un appareil exécutant une version Android
userdebug
à votre machine de développement.
- Installez votre application propriétaire.
- Créez un fichier
device_owner.xml
et enregistrez-le dans le répertoire /data/system
sur l'appareil.
$ adb root
$ adb shell stop
$ rm /tmp/device_owner.xml
$ echo "" >> /tmp/device_owner.xml
$ echo "&device-owner package=\"\" name=\"*\" />" >> /tmp/device_owner.xml
$ adb push /tmp/device_owner.xml /data/system/device_owner.xml
$ adb reboot
Avant d'utiliser l'API de verrouillage de tâches dans votre application, vérifiez que votre activité est autorisée en appelant DevicePolicyManager.isLockTaskPermitted().
Pour activer le verrouillage de tâches, appelez android.app.Activity.startLockTask()
depuis votre activité autorisée.
Lorsque le verrouillage de tâches est actif, les comportements suivants prennent effet :
- La barre d'état est vide, et les notifications utilisateur et les informations d'état sont cachées.
- Les boutons Accueil et Applications récentes sont cachés.
- D'autres applications ne peuvent pas lancer de nouvelles activités.
- L'application actuelle peut démarrer de nouvelles activités, à condition que cela ne crée pas de nouvelles tâches.
- L'utilisateur reste verrouillé sur votre application jusqu'à ce qu'une activité autorisée appelle
Activity.stopLockTask()
.
0 votes
Avez-vous résolu votre problème ?
3 votes
Oui, c'est possible. J'ai créé un (très) long article de blog à ce sujet : andreas-schrade.de/2015/02/16/…
0 votes
J'ai également créé un article de blog à ce sujet (en partie) en utilisant Lollipop - il exclut cependant la partie du récepteur de démarrage : sureshjoshi.com/mobile/android-kiosk-mode-without-root
0 votes
J'ai répondu à une question similaire ici sur différentes méthodes pour créer des appareils à usage unique verrouillés : stackoverflow.com/a/43644803/2888763