DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques Mobile / Fonctions Permission
  • Présentation
  • Fonctionnement des permissions
  • Les permissions "install-time"
  • Les permissions "runtime"
  • Cas particulier : localisation en arrière-plan
  • Gestion avancée des permissions en WLangage
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
Les applications Android nécessitent des permissions pour proposer certaines fonctionnalités qui peuvent nécessiter un accès à des données sensibles ou à des fonctions sensibles de l'appareil : prendre une photo, obtenir la position de l'utilisateur, lister les contacts, etc.
WINDEV Mobile détecte automatiquement les permissions nécessaires selon les fonctionnalités utilisées par l'application (fonctions WLangage, champs, etc.).
Il est également possible d'en ajouter ou d'en supprimer manuellement depuis l'assistant de génération. Pour les permissions de type "runtime-permission", le framework Android se charge automatiquement de gérer la demande de permission à l'utilisateur lorsqu'une fonctionnalité qui la requiert est utilisée.
Tout est donc automatique.
Cependant, dans certaines situations, le développeur a besoin de gérer plus finement les permissions de l'application. Un exemple simple : le développeur a besoin de savoir si une permission a déjà été accordée pour afficher dans le cas contraire une fenêtre explicative précisant à l'utilisateur pourquoi il doit accepter une permission donnée afin d'utiliser une fonctionnalité de l'application.
Pour gérer les permissions par programmation, WINDEV Mobile propose un type de variable ainsi que des fonctions du WLangage.
Fonctionnement des permissions
Toutes les permissions requises par une application doivent être déclarées dans le manifeste de l'application. Toutes ces permissions sont ensuite visibles lorsque l'application a été installée sur l'appareil dans la fiche de l'application accessible depuis le paramétrage du téléphone.
La liste des permissions existantes est disponible à l'adresse suivante : https://developer.android.com/reference/android/Manifest.permission.
Il existe plusieurs types de permission :
  • Les permissions "install-time".
  • Les permissions "runtime".

Les permissions "install-time"

Ces permissions permettent à l'application d'accéder à des données ou à utiliser des fonctionnalités qui affectent de manière minimale le système ou d'autres applications. Lorsqu'on déclare une telle permission dans le manifeste de l'application, le système accorde automatiquement cette permission à l'application dès son installation sans intervention de l'utilisateur.

Les permissions "runtime"

Les permissions "runtime", également appelées permissions dangereuses, permettent à l'application d'accéder à des données ou à utiliser des fonctionnalités sensibles : données privées de l'utilisateur, géolocalisation, activation du micro ou de la caméra, etc. Par conséquent, une action de l'utilisateur est nécessaire pour pouvoir accorder la permission à l'application.
Lors de l'accès à des données ou une fonctionnalité sensible, si la permission correspondante n'a pas encore été accordée, une message box s'affiche pour demander à l'utilisateur d'accorder la permission à l'application.
  • Si l'utilisateur accorde cette permission, la fonctionnalité ou les données deviennent accessibles et la permission ne lui sera plus demandée sauf s'il révoque cette permission dans la fenêtre de gestion des permissions de l'application accessibles depuis les paramètres de l'appareil.
  • Si l'utilisateur refuse cette permission, la fonctionnalité ou les données ne seront pas accessibles (en général cela se traduit par un échec de la fonction WLangage correspondante) et la permission lui sera à nouveau demandé la prochaine fois.
  • A partir d'Android 11, l'utilisateur a également la possibilité d'accorder la permission de manière temporaire (bouton "Uniquement cette fois-ci"). La permission est alors valable tant que la fenêtre depuis laquelle la permission a été demandée est visible. Si l'application passe en arrière-plan, la permission reste alors valable pendant une courte période seulement.
    Ce type de permission est disponible uniquement pour les permissions relatives à la localisation, à la caméra et au microphone.

Cas particulier : localisation en arrière-plan

Pour qu'une application puisse récupérer la position de l'appareil lorsqu'elle se trouve en arrière-plan, il est nécessaire de réaliser les opérations suivantes :
  1. Faire une demande de permission de localisation (autorisation ACCESS_[FINE/COARSE]_LOCATION via la fonction PermissionDemande avec les constantes permLocalisation ou permLocalisationPrécise).
  2. Si la permission précédente est accordée, faire une demande de permission pour la localisation en arrière-plan (autorisation ACCESS_BACKGROUND_LOCATION via la fonction PermissionDemande avec la constante permLocalisationEnArrièrePlan).
Dans cas, une fenêtre particulière de demande de permission est affichée.
Cette fenêtre propose d'autoriser l'accès à la position de l'appareil :
  • Lors de l'utilisation de l'application,
  • Uniquement cette fois-ci,
  • Refuser l'autorisation,
  • En modifiant directement les paramètres de l'application.
L'utilisateur a ainsi la possibilité d'accorder la permission uniquement lorsque celle-ci est visible (option "Lorsque vous utilisez l'application") temporairement ou non ou bien d'accéder aux paramètres de l'application pour autoriser la localisation en arrière-plan.
Gestion avancée des permissions en WLangage
Pour permettre une gestion avancée des permissions, le WLangage met à votre disposition :
  • Plusieurs fonctions :
    PermissionDemandeDemande à l'utilisateur d'accorder une permission à l'application.
    PermissionListeRenvoie une ou toutes les permissions déclarées par l'application.
  • Le type Permission :
    PermissionLe type Permission représente une permission demandée par l'application (et donc déclarée dans son manifeste).
Version minimum requise
  • Version 26
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 19/09/2022

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