Demande à l'utilisateur d'accorder une permission à l'application. Cette fonction donne la possibilité d'afficher un message informatif à l'utilisateur avant d'afficher la demande de permission.
// Demande la permission pour autoriser la localisation précise de l'appareil
// avant d'appeler la fonction GPSRécupèrePosition
Perm est une Permission = PermissionListe("android.permission.ACCESS_FINE_LOCATION")
// Si la permission n'a pas déjà été accordée
SI PAS Perm.Accordé ALORS
// Message informatif
// Affiche un message à l'utilisateur pour lui indiquer
// pourquoi l'application a besoin de cette permission
Info("Cette permission est nécessaire pour xxxx")
// Demande la permission
PermissionDemande(Perm, ProcDemandePermission)
PROCÉDURE INTERNE ProcDemandePermission(Perm est une Permission)
SI Perm.Accordé ALORS
MaPosition est une géoPosition = GPSRécupèrePosition()
...
FIN
FIN
FIN
Syntaxe
Demander une seule permission Masquer les détails
PermissionDemande(<Permission> , <Procédure WLangage>)
<Permission> : Chaîne de caractères ou variable de type Permission
Nom de la permission à demander. Ce paramètre peut correspondre : - à une chaîne de caractères de la forme : android.permission.<NOM>. La liste des permissions du SDK Android est disponible à l'adresse suivante : https://developer.android.com/reference/android/Manifest.permission.
- à une variable de type Permission.
- à une des constantes suivantes :
| |
permCaméra | Permission d'accéder aux caméras de l'appareil. |
permEcritureContact | Permission de modification des contacts. |
permEcritureStockageExterne | Permission d'écriture sur le stockage externe. |
permEnregistrementAudio | Permission d'enregistrement du flux audio. |
permEnvoiSMS | Permission d'envoi de SMS. |
permGestionStockageExterne | Permission de gestion du stockage externe. Si cette permission est demandée, une fenêtre système s'affiche permettant à l'utilisateur de donner le droit à l'application d'accéder à tous les fichiers sur le stockage externe, sans restriction. |
permLectureContact | Permission d'accès en lecture aux contacts. |
permLectureEtatTéléphone | Permission d'accès aux informations du téléphone. |
permLocalisation | Permission d'accès à la position de l'appareil. |
permLocalisationEnArrièrePlan | Permission d'accès à la position de l'appareil lorsque l'application est en arrière-plan. Attention : Cette permission doit être demandée seule et après l'acceptation des permissions correspondant aux constantes permLocalisation ou permLocalisationPrécise. |
permLocalisationPrécise | Permission d'accès à la position de l'appareil avec une précision élevée. |
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") appelée lors de la validation de la demande de permission. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(<Résultat>)
où <Résultat> est une variable de type Permission. La valeur de la propriété Accordé a été renseignée avec le résultat de la demande de permission.
Demander simultanément plusieurs permissions Masquer les détails
PermissionDemande(<Permissions> , <Procédure WLangage>)
<Permissions> : Tableau
Permissions à demander. Ce paramètre peut correspondre : - à un tableau de chaînes de caractères de la forme : android.permission.<NOM>
- à un tableau de variables de type Permission.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") appelée lors de la validation de la demande de permission. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(<Résultat>)
où <Résultat> est un tableau de variables de type Permission. Pour chacune des permissions, la valeur de la propriété Accordé a été renseignée avec le résultat de la demande de permission.
Remarques
- La permission permLocalisationEnArrièrePlan ou "android.permission.ACCESS_BACKGROUND_LOCATION" doit être demandée seule et après l'acceptation des permissions correspondant aux constantes permLocalisation ou permLocalisationPrécise.
- La permission doit avoir été déclarée dans le manifeste de l'application. Une erreur fatale sera déclenchée dans le cas contraire.
- Il n'est pas nécessaire d'appeler la fonction PermissionDemande pour les permissions dites "normales" (par opposition aux permissions dites "dangereuses") car elles sont automatiquement accordées dès l'installation de l'application à partir du moment où elles ont été déclarées dans le manifeste de l'application.
- Pour les permissions dites "dangereuses" (accès à la positon de l'appareil, à la caméra, au micro, etc), le framework Android se charge automatiquement d'effectuer la demande de permission à l'utilisateur lors de l'utilisation de la fonctionnalité correspondante. La fonction PermissionDemande peut toutefois être utilisée dans les cas par exemple où l'on souhaite afficher un message informatif à l'utilisateur avant d'effectuer une demande de permission.
- Si la permission a déjà été accordée, aucune fenêtre de validation ne sera affichée.
- ATTENTION : Puisque la fonction PermissionDemande peut afficher une fenêtre pour que l'utilisateur valide la demande de permission, cette fonction doit donc être appelée depuis le thread principal de l'application.
- Pour récupérer la liste des permissions déclarées par l'application, utilisez la fonction PermissionListe.
Classification Métier / UI : Code neutre
Composante : wd280android.aar