Language: HTML | XAML

Schnellstart: Lauschen auf Geofence-Ereignisse im Hintergrund (XAML)

Applies to Windows and Windows Phone

In diesem Thema werden Sie durch die Schritte geführt, die zum Einrichten einer Hintergrundaufgabe zum Lauschen auf Geofence-Benachrichtigungen in der Windows-Runtime-App mit C++, C# oder Visual Basic erforderlich sind.

Roadmap: Wie hängt dieses Thema mit anderen zusammen? Weitere Informationen:

Einführung

Nachdem Ihre Geofence-Bereiche erstellt wurden, müssen Sie die Logik für das Eintreten eines Geofence-Ereignisses hinzufügen. Je nach eingerichteten MonitoredStates können Sie in folgenden Fällen ein Ereignis empfangen:

  • Der Benutzer hat eine Zielregion betreten.
  • Der Benutzer hat eine Zielregion verlassen.
  • Der Geofence-Bereich ist abgelaufen oder wurde entfernt. Beachten Sie, dass eine Hintergrund-App für ein Entfernungsereignis nicht aktiviert wird.

In diesem Thema wird beschrieben, wie Sie eine Hintergrundaufgabe einrichten, mit der die App benachrichtigt wird, wenn ein Geofence-Ereignis eintritt. Sie können Ereignisse jedoch auch direkt über die App behandeln, wenn sie ausgeführt wird. Weitere Informationen finden Sie unter Schnellstart: Behandeln von Geofence-Benachrichtigungen im Vordergrund und Richtlinien für Geofencing.

Die Überwachung auf ein Geofence-Ereignis im Hintergrund erfordert eine Reihe von Schritten:

  • Deklarieren der Hintergrundaufgabe im App-Manifest.
  • Registrieren der Hintergrundaufgabe in Ihrer App. Wenn Ihre App Internetzugriff benötigt, z. B. um auf einen Cloud-Dienst zuzugreifen, können Sie dafür ein Kennzeichen festlegen, wenn das Ereignis ausgelöst wird. Sie können mithilfe eines Kennzeichens auch sicherstellen, dass der Benutzer anwesend ist, wenn das Ereignis ausgelöst wird. So können Sie sicher sein, dass der Benutzer die Benachrichtigung erhält.
  • In Windows müssen Sie den Benutzer auffordern, die App in den Windows-Einstellungen dem Sperrbildschirm hinzuzufügen: Wenn Sie die App im Microsoft Visual Studio-Simulator testen, fügen Sie die App dem Sperrbildschirm außerhalb des Simulators hinzu.
  • Fordern Sie den Benutzer bei im Vordergrund ausgeführter App auf, der App Standortberechtigungen zu gewähren.

Durchführen der Registrierung für Ereignisse zur Änderung des Geofence-Zustands

Fügen Sie im App-Manifest auf der Registerkarte Deklarationen eine Deklaration für eine Hintergrundaufgabe zum Standort hinzu. Gehen Sie wie folgt vor:

  • Fügen Sie eine Deklaration vom Typ Hintergrundaufgaben hinzu.
  • Legen Sie den Eigenschaftenaufgabentyp Standort fest.
  • Legen Sie einen Einstiegspunkt für die App fest, der aufgerufen wird, wenn das Ereignis ausgelöst wird.

Registrieren der Hintergrundaufgabe

Mit dem unten angegebenen Code wird die Geofencing-Hintergrundaufgabe registriert. Beachten Sie, dass bei der Erstellung des Geofence-Bereichs eine Überprüfung auf Standortberechtigungen durchgeführt wurde. Weitere Informationen finden Sie unter Schnellstart: Einrichten von Geofence-Bereichen.


async private void RegisterBackgroundTask(object sender, RoutedEventArgs e)
{
    // Get permission for a background task from the user. If the user has already answered once,
    // this does nothing and the user must manually update their preference via PC Settings.
    BackgroundAccessStatus backgroundAccessStatus = await BackgroundExecutionManager.RequestAccessAsync();

    // Regardless of the answer, register the background task. If the user later adds this application
    // to the lock screen, the background task will be ready to run.
    // Create a new background task builder
    BackgroundTaskBuilder geofenceTaskBuilder = new BackgroundTaskBuilder();

    geofenceTaskBuilder.Name = SampleBackgroundTaskName;
    geofenceTaskBuilder.TaskEntryPoint = SampleBackgroundTaskEntryPoint;

    // Create a new location trigger
    var trigger = new LocationTrigger(LocationTriggerType.Geofence);

    // Associate the locationi trigger with the background task builder
    geofenceTaskBuilder.SetTrigger(trigger);

    // If it is important that there is user presence and/or
    // internet connection when OnCompleted is called
    // the following could be called before calling Register()
    // SystemCondition condition = new SystemCondition(SystemConditionType.UserPresent | SystemConditionType.InternetAvailable);
    // geofenceTaskBuilder.AddCondition(condition);

    // Register the background task
    geofenceTask = geofenceTaskBuilder.Register();

    // Associate an event handler with the new background task
    geofenceTask.Completed += new BackgroundTaskCompletedEventHandler(OnCompleted);

    BackgroundTaskState.RegisterBackgroundTask(BackgroundTaskState.LocationTriggerBackgroundTaskName);

    switch (backgroundAccessStatus)
    {
    case BackgroundAccessStatus.Unspecified:
    case BackgroundAccessStatus.Denied:
        rootPage.NotifyUser("This application must be added to the lock screen before the background task will run.", NotifyType.ErrorMessage);
        break;

    }
}




  • Applies to Windows Phone

Hinweis  In Windows Phone müssen Sie RequestAccessAsync aufrufen. Dem Benutzer wird aber keine Eingabeaufforderung angezeigt, und die App muss nicht an den Sperrbildschirm angeheftet sein. Der Aufruf ist einfach notwendig, um das System darauf hinzuweisen, dass die App eine Hintergrundaufgabe registriert.

Verwandte Themen

Roadmaps
Roadmap für Windows-Runtime-Apps mit C# und Visual Basic
Roadmap für Windows-Runtime-Apps mit C++
UX-Design für Apps
Aufgaben
Schnellstart: Einrichten von Geofence-Bereichen
Schnellstart: Behandeln von Geofence-Benachrichtigungen im Vordergrund
Schnellstart: Behandeln von Geofence-Benachrichtigungen über eine Hintergrundaufgabe
Referenz
Geoshape
Geofence
Geolocator
Weitere Ressourcen
Richtlinien für Geofencing

 

 

Anzeigen:
© 2015 Microsoft