Partager via


Instructions pour les applications de géofencing

Suivez ces bonnes pratiques pour la géofencing dans votre application.

API importantes

Recommandations

  • Si votre application a besoin d’un accès Internet lorsqu’un événement geofence se produit, vérifiez l’accès à Internet avant de créer la limite géographique.

    • Si l’application n’a pas actuellement accès à Internet, vous pouvez inviter l’utilisateur à se connecter à Internet avant de configurer la limite géographique.
    • Si l’accès à Internet n’est pas possible, évitez de consommer la puissance requise pour les vérifications d’emplacement de géofencing.
  • Vérifiez la pertinence des notifications de géofencing en vérifiant l’horodatage et l’emplacement actuel lorsqu’un événement de limite géographique indique les modifications apportées à un état entré ou sortant. Pour plus d’informations, consultez Vérification de l’horodatage et de l’emplacement actuel ci-dessous.

  • Créez des exceptions pour gérer les cas où un appareil ne peut pas accéder aux informations d’emplacement et avertir l’utilisateur si nécessaire. Les informations de localisation peuvent être indisponibles, car les autorisations sont désactivées, l’appareil ne contient pas de radio GPS, le signal GPS est bloqué ou le signal Wi-Fi n’est pas assez fort.

  • En général, il n’est pas nécessaire d’écouter les événements de limite géographique au premier plan et en arrière-plan en même temps. Toutefois, si votre application doit écouter les événements de limite géographique au premier plan et en arrière-plan :

    • Appelez la méthode ReadReports pour déterminer si un événement s’est produit.
    • Annulez l’inscription de votre écouteur d’événements de premier plan lorsque votre application n’est pas visible pour l’utilisateur et réinscrire lorsqu’elle devient à nouveau visible.

    Consultez les écouteurs d’arrière-plan et de premier plan pour obtenir des exemples de code et plus d’informations.

  • N’utilisez pas plus de 1 000 limites géographiques par application. Le système prend en charge des milliers de limites géographiques par application, vous pouvez maintenir de bonnes performances d’application pour réduire l’utilisation de la mémoire de l’application en utilisant pas plus de 1 000.

  • Ne créez pas de limite géographique avec un rayon inférieur à 50 mètres. Si votre application doit utiliser une limite géographique avec un petit rayon, conseillez aux utilisateurs d’utiliser votre application sur un appareil avec une radio GPS pour garantir les meilleures performances.

Indications d’utilisation supplémentaires

Vérification de l’horodatage et de l’emplacement actuel

Lorsqu’un événement indique une modification de l’état entré ou sortant, vérifiez à la fois l’horodatage de l’événement et votre emplacement actuel. Différents facteurs, tels que le système n’ayant pas suffisamment de ressources pour lancer une tâche en arrière-plan, l’utilisateur ne notant pas la notification ou l’appareil en veille, peut affecter lorsque l’événement est réellement traité par l’utilisateur. Par exemple, la séquence suivante peut se produire :

  • Votre application crée une limite géographique et surveille la limite géographique pour les événements d’entrée et de sortie.
  • L’utilisateur déplace l’appareil à l’intérieur de la limite géographique, ce qui entraîne le déclenchement d’un événement d’entrée.
  • Votre application envoie une notification à l’utilisateur qu’elle se trouve maintenant dans la limite géographique.
  • L’utilisateur était occupé et ne remarque pas la notification jusqu’à 10 minutes plus tard.
  • Pendant ce délai de 10 minutes, l’utilisateur s’est déplacé en dehors de la limite géographique.

À partir de l’horodatage, vous pouvez indiquer que l’action s’est produite dans le passé. À partir de l’emplacement actuel, vous pouvez voir que l’utilisateur est maintenant de retour en dehors de la limite géographique. En fonction des fonctionnalités de votre application, vous pouvez filtrer cet événement.

Écouteurs d’arrière-plan et de premier plan

En règle générale, votre application n’a pas besoin d’écouter les événements de limite géographique au premier plan et dans une tâche en arrière-plan en même temps. La méthode la plus propre pour gérer un cas où vous devrez peut-être les deux consiste à laisser la tâche en arrière-plan gérer les notifications. Si vous configurez à la fois les écouteurs de limite géographique au premier plan et en arrière-plan, il n’existe aucune garantie qui sera déclenchée en premier et vous devez donc toujours appeler la méthode ReadReports pour déterminer si un événement s’est produit.

Si vous avez configuré à la fois les écouteurs de limite géographique de premier plan et d’arrière-plan, vous devez annuler l’inscription de votre écouteur d’événements de premier plan chaque fois que votre application n’est pas visible par l’utilisateur et réinscrire votre application lorsqu’elle devient à nouveau visible. Voici un exemple de code qui s’inscrit pour l’événement de visibilité.

Windows.UI.Core.CoreWindow coreWindow;    

// This needs to be set before InitializeComponent sets up event registration for app visibility
coreWindow = CoreWindow.GetForCurrentThread();
coreWindow.VisibilityChanged += OnVisibilityChanged;

Lorsque la visibilité change, vous pouvez activer ou désactiver les gestionnaires d’événements de premier plan, comme indiqué ici.

private void OnVisibilityChanged(CoreWindow sender, VisibilityChangedEventArgs args)
{
    // NOTE: After the app is no longer visible on the screen and before the app is suspended
    // you might want your app to use toast notification for any geofence activity.
    // By registering for VisibiltyChanged the app is notified when the app is no longer visible in the foreground.

    if (args.Visible)
    {
        // register for foreground events
        GeofenceMonitor.Current.GeofenceStateChanged += OnGeofenceStateChanged;
        GeofenceMonitor.Current.StatusChanged += OnGeofenceStatusChanged;
    }
    else
    {
        // unregister foreground events (let background capture events)
        GeofenceMonitor.Current.GeofenceStateChanged -= OnGeofenceStateChanged;
        GeofenceMonitor.Current.StatusChanged -= OnGeofenceStatusChanged;
    }
}

Dimensionnement de vos limites géographiques

Bien que le GPS puisse fournir les informations de localisation les plus précises, le géofencing peut également utiliser le Wi-Fi ou d’autres capteurs d’emplacement pour déterminer la position actuelle de l’utilisateur. Toutefois, l’utilisation de ces autres méthodes peut affecter la taille des limites géographiques que vous pouvez créer. Si le niveau de précision est faible, la création de petites limites géographiques ne sera pas utile. En général, il est recommandé de ne pas créer de limite géographique avec un rayon inférieur à 50 mètres. En outre, les tâches en arrière-plan de limite géographique s’exécutent régulièrement sur Windows ; si vous utilisez une petite limite géographique, il est possible que vous ne manquez pas entièrement un événement Entrée ou Sortie.

Si votre application doit utiliser une limite géographique avec un petit rayon, conseillez aux utilisateurs d’utiliser votre application sur un appareil avec une radio GPS pour garantir les meilleures performances.