La fonction BeaconDetecteEnArriérePlan active la détection d'entrée et de sortie de la zone définie par les beacons qui lui sont passés en paramètres (UUID, Major, Minor). C'est donc à l'appel de cette fonction, que la détection d'une zone est associée à une procédure de votre application mobile. La détection de plusieurs zones (groupe de beacons) peut être faite soit par :

  • un appel unique de la fonction BeaconDetecteEnArriérePlan. Dans ce cas vous devrez gérer toutes les détections dans une procédure unique de votre application,
  • plusieurs appels de la fonction BeaconDetecteEnArriérePlan. Cette solution permet d'avoir des procédures spécifiques pour la détection des différentes zones.

 

La commande BeaconDetecteEnArriérePlan lance le service de détection d'entrée /sortie de zones du système (Android/iOS). Ce traitement n'est pas directement dépendant de votre application, il est géré par le système. Le traitement de surveillance s'exécute toujours même si l'application est arrêtée. Le lancement ou arrêt de l'application n'a aucune influence sur cette détection. Seul l'arrêt du service système ou la désinstallation de l'application met fin à la détection.

 

Le traitement détecte une entrée ou une sortie d'une des zones délimitées par le ou les beacons indiqués. Tant que le mobile n'entre pas ou ne sort pas de la zone, aucun code n'est exécuté et ce même si l'application est arrêtée puis relancée. Si vous devez détecter des beacons au lancement ou à la mise en avant plan de l'application, il faut utiliser un code spécifique basé sur la commande BeaconDetectePrécis.

 

La procédure callback est exécutée depuis le service de détection Android ou iOS. Si l'application est en cours d'exécution, la procédure s'exécute dans le contexte courant de l'application. Si l'application est fermée, le service lance l'application et la procédure est exécutée dans un nouveau contexte. Il est donc très fortement déconseillé d'accéder aux champs de l'application car vous n'avez aucune garantie que la fenêtre soit ouverte.

Sous iOS, vous pouvez utiliser la commande ExeInfo() avec la constante exeLancement pour savoir si l'application a été lancée par l'utilisateur ou le système suite à une détection. Pour la gestion des beacons, ce sera également la valeur exeGéoSuivi qui sera renvoyée. Cette fonctionnalité sera disponible sous Android à partir de la version "Update 2" (230043) de WINDEV Mobile.

Je vous conseille dans tous les cas d'utiliser une collection de procédures spécifique à la gestion des beacons dans votre application. Cette collection contientra tous les traitements relatifs à la détection et la gestion des zones. Cette collection ne devra pas utiliser directement l'IHM de l'application puisqu'elle pourra être appelée lorsque l'application n'est pas lancée. Je vous conseille de mettre en place un dialogue entre cette collection de procédures et l'application basé sur les fichiers HFSQL, ou des notifications, pluôt que des variables globales.

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée