Android: Prendre le contrôle complet de téléphone(mode kiosque), est-il possible? Comment?
Nous avons un programme qui nous installer sur les téléphones et de prêt, les téléphones des utilisateurs pour une certaine période. Nous aimerions que les téléphones à être utilisés exclusivement pour l'exécution de notre application (pas de téléphone, pas de jeux, pas rien). Les téléphones seront enracinées.
Donc les choses dont nous avons besoin:
- Exécuter en plein écran, rien d'autre ne sera visible
- Bouton Home et les autres boutons du périphérique ne fonctionnera pas
- Notre application va s'exécuter automatiquement au démarrage
Il n'a pas à être "la preuve de pirates", mais devrait être suffisant pour empêcher l'utilisateur moyen de jouer avec l'appareil.
Est-ce possible? J'ai fait des choses similaires sur Symbian & Windows Mobile, mais je n'ai pas beaucoup d'expérience avec ce genre de choses sur Android. Comment peut-il être atteint?
Mise à JOUR 2015: Si vous n'avez pas l'esprit de limiter votre application à un seul fournisseur de téléphone, Samsung a présenté le KNOX kit de développement logiciel qui vous permet d'obtenir le mode kiosque et beaucoup plus facilement sans enracinement téléphone. Voir les détails au: https://seap.samsung.com/developer/sdk/knox-standard-android
Vous devez vous connecter pour publier un commentaire.
Oui c'est possible, mais vous ne pouvez pas contrôler le comportement de
Home key
etend call key
.pour le plein écran ajouter
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
à l'activité de la balise dans le fichier manifest.Pour désactiver l'appel entrant vous avez besoin d'écouter les appels téléphoniques:
Remarque: lors de l'arrêt du service de ne pas foget pour supprimer l'auditeur et ajouter ces autorisations à votre fichier manifeste:
et déconnecter l'appel du programme:
Remarque: Ajoutez ce fichier pour déconnecter l'appel:
http://dl.dropbox.com/u/31740476/ITelephony.aidl
Pour désactiver les touches dont vous avez besoin pour remplacer:
Sur la touche d'Accueil, appuyez sur l'écran d'Accueil va venir, afin de surmonter ce problème, vous devez mettre en œuvre un service et là, vous avez besoin pour mettre en œuvre une infinie fil de relancer votre application comme ceci:
MODIFIER
Vous devrez ajouter de l'autorisation suivante pour être en mesure de mettre fin à des appels:
Et vous pouvez utiliser l'AIDL fichier:
NoSuchMethodException
àMethod m = c.getDeclaredMethod("getITelephony");
.. Comment l'éviter????Vineet la solution fonctionne. Cependant, je pense qu'il nécessite deux plus d'autorisations que j'ai trouvé à partir de
ici
Si les autorisations nécessaires sont
Bien que cela a fonctionné pour moi comme ce
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
vous pouvez également jeter un oeil à ceci: https://github.com/ligi/Setec-Astronomy
désolé pour la honte-moins auto-prise mais nous avons simmilar problèmes là-bas 😉
@Vineet Shukla: Le
READ_PHONE_STATE
autorisation n'est pas assez pour le faire fonctionner. Vous avez également besoin d'CALL_PHONE
la permission de mettre fin à l'appel.La
MODIFY_PHONE_STATE
(comme dit par Zaki Choudhury) est un système d'autorisation et peut être utilisé uniquement sur les appareils enracinées et n'est pas nécessaire par une partie du code.