DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques Mobile / Fonctions Kiosque
  • Présentation
  • Android et le mode kiosque
  • Présentation
  • Le mode kiosque simple
  • Le mode kiosque complet
  • Comment gérer le mode kiosque simple dans une application WINDEV Mobile ?
  • Comment le faire ?
  • Remarques
  • Comment gérer le mode kiosque complet dans une application WINDEV Mobile ?
  • Comment le faire ?
  • Ligne de commande pour activer le mode kiosque complet
  • Comment tester une application utilisant le mode kiosque complet ?
  • Remarques sur le mode kiosque complet
  • Astuces et programmation
  • Astuces
  • Fonctions WLangage liées à l'utilisation du mode kiosque
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Une application en mode kiosque est une application que l'utilisateur ne peut pas quitter par lui-même. Lorsqu'une application est en mode kiosque l'utilisateur ne peut pas lancer d'autres applications, il n'a pas accès aux paramètres de l'appareil, il ne voit et ne reçoit ni les notifications ni les appels.
Les cas d'utilisation sont multiples : application de démonstration, application pour borne numérique, application pour enfant, application dédiée à une tâche particulière, etc.
Android et le mode kiosque

Présentation

Depuis Android 5.0, deux possibilités sont disponibles pour créer une application en mode kiosque :
  • le mode kiosque 'simple' (fonctionnalité "Screen Pinning").
  • le mode kiosque 'complet'.

Le mode kiosque simple

Cette fonctionnalité permet, sans autorisation particulière, de n'afficher qu'une seule application à l'écran :
  • la status bar est vidée,
  • les icônes des notifications sont masquées,
  • les boutons "Accueil" et "Applications récentes" sont désactivés,
  • les autres applications ne peuvent pas lancer de nouvelles activités.
Cette fonctionnalité peut être utilisée par exemple pour prêter son téléphone à des enfants ou à d'autres personnes sans risque de fuite de données personnelles.
Cependant cette fonctionnalité est insuffisante dans la plupart des autres cas. En effet :
  • une confirmation est demandée à l'utilisateur avant de passer dans ce mode.
  • l'utilisateur peut quitter ce mode à tout moment en appuyant simultanément sur les touches "Retour" et "Applications récentes".

Le mode kiosque complet

Contrairement au mode kiosque simple :
  • le mode kiosque complet ne demande pas de confirmation.
  • l'utilisateur ne peut pas quitter le mode kiosque complet.
Cependant, la mise en place de ce mode kiosque nécessite l'utilisation de privilèges spécifiques. Ces privilèges peuvent être obtenus uniquement :
  • lorsque l'application est définie comme propriétaire de l'appareil ("device owner")
  • si une application "device owner" donne ces privilèges à l'application.
Une application "device owner" peut effectuer, à la condition de les déclarer, des opérations normalement réservées aux applications système : créer des utilisateurs, modifier des paramètres globaux (accès au wifi, au bluetooth), définir des politiques de sécurité, masquer des applications, et notamment dans le cas du mode kiosque : verrouiller l'application pour que l'utilisateur ne puisse plus en sortir par lui même.
Comment gérer le mode kiosque simple dans une application WINDEV Mobile ?

Comment le faire ?

Pour gérer le mode kiosque simple :
  1. Utilisez la fonction KiosqueActive.
  2. Un message de confirmation est affiché à l'utilisateur pour activer ou non le mode kiosque.

Remarques

  • Il est possible de savoir si le mode kiosque est activé grâce à la fonction EnModeKiosque.
  • Il est possible de sortir du mode kiosque grâce à la fonction KiosqueDésactive.
Comment gérer le mode kiosque complet dans une application WINDEV Mobile ?

Comment le faire ?

Pour gérer le mode kiosque complet :
  1. Passez l'application en mode "Device owner" :
    • Dans la description de la configuration de projet Android, cochez l'option "Application d'administration de l'appareil (peut devenir "device owner" pour le mode kiosque)".
    • Exécutez la ligne de commande pour activer le mode kiosque complet (voir ci-dessous).
  2. Utilisez la fonction KiosqueActive dans l'application pour activer le mode kiosque.

Ligne de commande pour activer le mode kiosque complet

Après l'installation de l'application sur le terminal Android, exécutez la commande ADB suivante en ciblant l'appareil sur lequel l'application est installée :
adb shell dpm set-device-owner
<package>/fr.pcsoft.wdjava.core.application.WDDeviceAdminReceiver
où :
<Package> correspond au nom du package de votre application Android.
Cette commande crée une entrée dans le fichier "/data/system/ device_owner.xml" qui référence l'application comme étant "device owner".
Remarque : Il ne peut y avoir qu'une seule application en mode "device owner" par appareil et cette opération n'est possible que si aucun utilisateur n'a été configuré sur l'appareil. Dans le cas contraire, il est nécessaire de supprimer tous les utilisateurs avant d'exécuter la commande.

Comment tester une application utilisant le mode kiosque complet ?

Pour tester une application Android utilisant le mode kiosque complet, il est conseillé de réaliser un test dans l'émulateur. En effet, il est ensuite possible de faire un "reset" de l'émulateur pour réaliser le test d'autres applications.
A partir d'Android 7.0, il est possible d'indiquer que l'application est utilisée uniquement à des fins de tests lors de la génération de l'application Android.
WINDEV Mobile propose cette option par défaut dans l'assistant de génération de l'application Android si :
  • l'option "Application d'administration de l'appareil (peut devenir "device owner" pour le mode kiosque)" a été cochée dans la fenêtre de description de la configuration Android.
  • l'application n'est pas signée pour le store lors de sa génération.
Pour information, cette option consiste à utiliser "android:testOnly=true" dans le manifeste de l'application.
Dans ce cas, après les tests effectués sur l'appareil mobile, il est possible de désactiver le mode "Device owner" avec la ligne de commande suivante :
adb shell dpm remove-active-admin <package>/fr.pcsoft.wdjava.core.application.WDDeviceAdminReceiver
L'activation de cette option est conseillée durant la phase de test de l'application. Il n'est pas possible de déployer une application de test sur le Play Store.

Remarques sur le mode kiosque complet

  • Une fois qu'une application a été définie comme "device owner", il n'est plus possible de désactiver ce mode ni même de supprimer l'application. Seule une réinitialisation d'usine (factory reset) de l'appareil permet supprimer l'application.
  • Pour mettre à jour une application en mode "device owner", il est nécessaire de la signer avec la même clé que celle utilisée lorsque le mode a été activée.
  • La fonction WLangage EnModeDeviceOwner permet de savoir si l'application est "device owner".
  • Il est possible de savoir si le mode kiosque est activé grâce à la fonction EnModeKiosque.
  • Il est possible sortir du mode kiosque grâce à la fonction KiosqueDésactive.
Astuces et programmation

Astuces

  • Il est conseillé de prévoir un moyen de sortir du mode kiosque (option de menu accessible par un mot de passe, ...).
  • En cas de redémarrage du système (problème de batteries, ...), l'activation du mode kiosque ne sera pas conservée au lancement suivant de l'application. Pensez à  :
    • Relancer automatiquement l'application : cochez l'option "Lancer automatiquement l'application au démarrage du périphérique" dans l'assistant de génération de l'application Android.
    • Enregistrer le mode d'utilisation de l'application (mode kiosque ou non) afin que lors de son lancement, ce mode soit paramétré par défaut (par exemple, utilisez les fonctions SauveParamètre et ChargeParamètre dans l'événement "Initialisation" du projet).
    • Réactivez si nécessaire le mode kiosque (fonction KiosqueActive utilisée dans dans l'événement "Initialisation" du projet).

Fonctions WLangage liées à l'utilisation du mode kiosque

EnModeDeviceOwnerIndique si l'application Android est en mode "Device owner".
EnModeKiosqueIndique si l'application Android est en mode kiosque.
KiosqueActivePasse l'application Android en cours en mode kiosque.
KiosqueDésactiveDésactive le mode kiosque pour l'application en cours.
Version minimum requise
  • Version 25
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 10/03/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale