DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Fonctions Beacon
  • Version nécessaire
  • Bluetooth Low Energy
  • Permissions requises
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
Permet de trouver les balises Beacon à proximité de l'appareil.
Exemple
// Dans un musée, on souhaite afficher sur l'appareil du visiteur les informations
// sur l'oeuvre qu'il est en train de regarder. On associe à chaque balise Beacon
// le même UUID correspondant au musée et des numéros Major et Minor
// permettant d'identifier chaque balise de manière unique.
// On dispose une balise Beacon à côté de chaque oeuvre du musée.
// L'application doit appeler la fonction BeaconDétectePrécis avec une variable
// BeaconGroupe correspondant aux balises du musée.
// La procédure callback passée en paramètre à la fonction sera appelée à chaque fois
// qu'une nouvelle liste de balises Beacon sera détectée. Il suffit ensuite de trouver
// la balise la plus proche pour en déduire l'oeuvre que regarde le visiteur et afficher
// les informations correspondantes dans l'application.
 
// UUID du musée
sUUID est une chaîne = "f4231ab6-5ef2-6c99-4229-af6c72e0446e"
// Création d'une variable beaconGroupe correspondant aux balises du musée
groupeMusée est un beaconGroupe
groupeMusée.UUID = sUUID
// Lancement de la détection
BeaconDétectePrécis(groupeMusée, ProcDétection)
PROCÉDURE INTERNE ProcDétection(tabInfo est un tableau de beaconInfoDétection)
nDistanceMin est un entier
BaliseLaPlusProche est un beaconInfoDétection
POUR TOUT Information DE tabInfo
SI nDistanceMin = 0 _OU_ Information.Distance < nDistanceMin
BaliseLaPlusProche = Information
FIN
FIN
// Affichage des informations sur l'oeuvre associée à la balise
AfficheInfoOeuvre(BaliseLaPlusProche.Major, BaliseLaPlusProche.Minor)
FIN
Syntaxe
<Résultat> = BeaconDétectePrécis(<Groupe de balises> , <Procédure WLangage>)
<Résultat> : Booléen
  • Vrai si la détection a bien été démarrée,
  • Faux dans le cas contraire. Pour plus de détails sur l'erreur, utilisez la fonction ErreurInfo.
<Groupe de balises> : Variable de type beaconGroupe
Nom d'une variable de type beaconGroupe décrivant le groupe de balises Beacon recherchées.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") appelée en cas de détection d'une nouvelle liste de balises Beacon.
Cette procédure est de la forme :
PROCEDURE <Nom de la Procédure>(<Tableau des infos de détection>)
où <Tableau des infos de détection> est une variable de type beaconInfoDétection décrivant les informations sur les balises Beacon détectées (identifiants, numéros Major/Minor, distance, etc.)
Remarques
  • Cette fonction effectue une analyse minutieuse des émissions Bluetooth autour de l'appareil enfin de détecter les balises Beacon et d'estimer leur distance. Cette analyse est consommatrice d'énergie : il est donc recommandé d'appeler uniquement cette fonction si au moins une balise du groupe se trouve à proximité.
    Pour cela, il est possible d'appeler la fonction BeaconDétecteEnArrièrePlan puis d'appeler la fonction BeaconDétectePrécis depuis la procédure callback exécutée lorsque l'application a détecté l'entrée dans la zone d'émission des balises du groupe.
    De plus, il est conseillé d'arrêter la détection précise dès que possible. La fonction BeaconArrêteDétectionPrécise permet d'arrêter la détection en cours : elle peut par exemple être appelée dans la procédure WLangage exécutée lorsque l'application a détecté la sortie de la zone d'émission des balises du groupe.
  • La détection précise des balises Beacon est effectuée uniquement lorsque l'application se trouve au premier plan. Lorsque l'application passe en arrière-plan, la détection est automatiquement suspendue et reprendra dès que l'application repassera au premier plan. La détection est stoppée définitivement lorsque l'application est arrêtée. Pour effectuer une détection en arrière-plan, utilisez la fonction BeaconDétecteEnArrièrePlan.
  • iPhone/iPadWidget IOSMac Catalyst Lors de la génération de l'application, il est possible d'autoriser l'appel à la fonction BeaconDétectePrécis quand l'application est en arrière-plan (option "Autoriser les fonctions GPSSuitDéplacement et BeaconDétectePrécis à être appelées quand l'application est en arrière-plan" dans l'étape "Configuration" de l'assistant). Dans ce cas, la détection précise se poursuivra lorsque l'application sera en arrière-plan ou lorsque l'appareil sera en veille. Pour plus de détails, consultez Générer une application iOS.
  • Il n'est pas possible de lancer plusieurs détections précises simultanément. Si la fonction BeaconDétectePrécis est appelée alors qu'une détection est déjà en cours, la détection en cours sera arrêtée et une nouvelle détection sera lancée.

Version nécessaire

AndroidWidget Android Les fonctions de gestion des balises Beacon sont disponibles uniquement sur les appareils disposant d'une version d'Android supérieure ou égale à la version 4.3 (api level 18).
Si la fonction est utilisée avec une version antérieure du système, une erreur fatale sera déclenchée.
Pour connaître la version du système Android sur laquelle s'exécute l'application, utilisez la fonction SysVersionAndroid.
iPhone/iPadWidget IOS Les fonctions de gestion des balises Beacon sont disponibles uniquement sur les appareils disposant d'une version d'iOS supérieure ou égale à iOS 11.
AndroidWidget Android

Bluetooth Low Energy

L'appareil doit supporter la technologie Bluetooth Low Energy (Bluetooth LE).
AndroidWidget Android

Permissions requises

L'utilisation de cette fonction entraîne la modification des permissions requises par l'application.
Permission requise : ACCESS_COARSE_LOCATION : Permet à l'application d'obtenir la position approximative de l'appareil.
Spécificité Android 11 : L'utilisation de cette fonction nécessite la mise en place de la permission ACCESS_BACKGROUND_LOCATION permettant la localisation de l'appareil.
Cette permission permet d'autoriser l'utilisation de la fonction lorsque l'application est en arrière-plan.
Si l'application nécessite la localisation en arrière-plan, il faut :
  • Ajouter manuellement la permission "ACCESS_BACKGROUND_LOCATION" dans l'assistant de génération de l'application Android.
  • Demander explicitement la permission de localisation en arrière-plan à l'utilisateur avec la fonction PermissionDemande. Par exemple :
    PermissionDemande(permLocalisationEnArrièrePlan, Callback)
    PROCÉDURE INTERNE Callback(p est une Permission)
    SI p.Accordé ALORS
    // Utilisation possible des fonctions nécessitant la localisation en arrière-plan
    FIN
    FIN
Une fenêtre permet à l'utilisateur de :
  • accepter l'accès à la position de l'appareil avec l'application en arrière-plan,
  • limiter l'accès à la position à l'application active,
  • refuser l'accès à la position.
L'utilisateur peut également modifier son autorisation à posteriori dans les réglages de Android.
Remarques :
  • Respectez les spécifications Google concernant les applications utilisant la localisation en arrière-plan. Pour plus de détails, consultez https://support.google.com/googleplay/android-developer/answer/9799150. Si ces conditions ne sont pas remplies (notamment les conditions d'information de l'utilisateur), les applications pourront ne pas obtenir l'autorisation de publication sur Play Store.
  • La demande de permission de localisation en arrière-plan ne doit être effectuée que si la permission de localisation a été accordée. Dans le cas contraire, la fonction PermissionDemande échouera.
  • Si le choix de l'utilisateur lors de la demande de permission de localisation en arrière-plan est plus restrictif que le choix effectué lors de la demande de permission de localisation, l'application sera automatiquement relancée.
  • Sur les appareils en version inférieure à Android 10, si la permission de localisation a été accordée à l'application, la demande de permission de localisation en arrière-plan sera accordée sans affichage de fenêtre.
Composante : wd300android.aar
Version minimum requise
  • Version 23
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

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