117 votes

Mode Kiosk dans Android

Je suis en train d’évaluer si et comment une application d’entreprise .NET CF peut être portée pour exécuter sur les périphériques Android. L’application sur Windows Mobile phones sont exécutées en mode kiosque où l’autostart application en mode plein écran après le démarrage et avec les utilisateurs pas volontairement ou accidentellement accéder à toutes les autres pièces du téléphone. Est-il possible pour moi de port ce comportement pour android et dans l’affirmative, comment ?

29voto

Valentin Points 1004

Vous pouvez démarrer automatiquement des applications au démarrage de l'écoute de la android.intent.action.BOOT_COMPLETED intention dans un BroadcastReceiver et démarrer votre Activité à partir de là. Dans l'Activité, vous pouvez vous inscrire en tant que la nouvelle valeur par défaut à l'écran d'accueil[1] et de gérer les clés.

Je pense qu'il y a certains cas, que vous ne pouvez pas gérer sans modifier le cadre (comme appuyez de manière prolongée sur la Maison pour montrer actuellement les Applications actives) - j'ai également pu se tromper.

Mais pour un prototype qui pourrait être suffisant.

Avoir du plaisir à bricoler!

[1]:

<intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.HOME" />
 <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

17voto

rbot Points 175

Vous pourriez personnaliser ceci (désactiver l’accès au menu, limiter l’ajout de l’application etc.) pour permettre le kiosque. http://code.google.com/p/Android-Launcher-plus/

17voto

Niek Haarman Points 13931

Dans le nouveau Android L Preview, Google a annoncé la Tâche de Verrouillage, ce qui est exactement ce que fait. Il ne semble pas avoir besoin de la racine.

La L Developer Preview introduit une nouvelle tâche de verrouillage API qui permet à vous restreindre temporairement les utilisateurs de quitter votre application ou de votre être interrompu par des notifications. Cela pourrait être utilisé, par exemple, si vous sont le développement d'une application éducative à l'appui de l'évaluation enjeux élevés exigences sur Android. Une fois que votre application active ce mode, les utilisateurs ne pas être en mesure de voir les notifications, l'accès à d'autres applications, ou de retourner à l' L'écran d'accueil, jusqu'à ce que votre application quitte la mode.

Pour empêcher une utilisation non autorisée, seulement autorisé les applications peuvent activer des tâches verrouillage. En outre, la tâche de verrouillage de l'autorisation doit être accordée par un spécialement configuré le propriétaire de l'appareil app, par le biais de la android.app.admin.DevicePolicyManager.setLockTaskComponents() méthode.

Pour configurer un périphérique de propriétaire, suivez ces étapes:

  • Joindre un appareil équipé d'un Androïde userdebug construire à votre développement de la machine.
  • Installez votre appareil propriétaire de l'application.
  • Créer un device_owner.xmlle fichier et l'enregistrer à l' /data/system répertoire sur l'appareil.
$ adb root
$ adb shell stop
$ rm /tmp/device_owner.xml
$ echo "<?xml version='1.0' encoding='utf-8' standalone='yes' ?>" >> /tmp/device_owner.xml
$ echo "&device-owner package=\"<your_device_owner_package>\" name=\"*<your_organization_name>\" />" >> /tmp/device_owner.xml
$ adb push /tmp/device_owner.xml /data/system/device_owner.xml
$ adb reboot

Avant d'utiliser le groupe de verrouillage de l'API dans votre application, vérifiez que votre l'activité est autorisée par l'appel DevicePolicyManager.isLockTaskPermitted().

Pour activer la tâche de verrouillage, appelez - android.app.Activity.startLockTask() à partir de votre activité autorisée.

Lorsque la tâche de verrouillage est actif, le comportement suivant prend effet:

  • La barre d'état est vide, et les notifications à l'utilisateur et les informations d'état est caché.
  • L'Accueil et Applications Récentes boutons sont cachés.
  • Autres applications peuvent ne pas lancer de nouvelles activités.
  • L'application peut commencer de nouvelles activités, tant que cela ne crée pas de nouvelles tâches.
  • L'utilisateur reste verrouillé sur votre application jusqu'à ce que l'activité autorisée des appels Activity.stopLockTask().

9voto

matt_lethargic Points 796

Après avoir cherché pendant un moment j'ai trouvé une bonne solution. Cela ne fonctionne que sur les appareils enracinées bien, mais je suppose que si c'est juste pour cette application, l'enracinement, il ne devrait pas être un problème.

Consultez également http://thebitplague.wordpress.com/2013/04/05/kiosk-mode-on-the-nexus-7/ pour une autre façon

2voto

Big Rich Points 1833

Trouvé une autre technique possible dans ce post sur le forum. Citer ce post:

http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/10839-android-kiosk-mode-tutorial.html

En utilisant les méthodes suivantes vous pouvez construire une application qui va éviter les "réguliers" utilisateurs de jouer avec autre chose que votre application.

L'application est composée de deux modules. L'activité principale et une service. Le service est configuré pour se lancer au démarrage. Lorsque le service a commencé, il vérifie si l'activité est en cours d'exécution ou non. Si elle n'est pas cours d'exécution, il utilise une minuterie pour démarrer l'activité principale.

Lorsque l'activité est en pause l'horaire, le service à démarrer dans un deuxième: Code:

Sub Activity_Pause (UserClosed As Boolean)
    If kiosk Then StartServiceAt(KioskService, DateTime.Now + 1 * DateTime.TicksPerSecond, false)    
End Sub

Si l'utilisateur appuie sur l'écran d'accueil l'écran d'accueil apparaît pendant plusieurs secondes. Toutefois, votre demande sera de retour à l'avant après quelques secondes, et l'utilisateur ne sera pas en mesure d'interagir avec n'importe quel d'autres applications ou modifier les paramètres.

Le service est configuré pour être un premier plan de service. Cela empêche Android de tuer notre service. Appuyez sur le bouton d'Arrêt pour désactiver le kiosque mode.

Il semble y avoir un exemple de kiosque de code en mode fichier ZIP disponible pour le téléchargement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X