Idioma: HTML | XAML

Guia de início rápido: escutando eventos de cerca geográfica em segundo plano (XAML)

Applies to Windows and Windows Phone

Este tópico guia você pelas etapas de configuração de uma tarefa em segundo plano para escutar notificações de Geofence em seu aplicativo do Tempo de Execução do Windows em C++, C# ou Visual Basic.

Mapa: como este tópico está relacionado aos outros? Veja:

Introdução

Após a criação das cercas geográficas, você tem que adicionar a lógica para agir quando ocorrer um evento de cerca geográfica. Dependendo dos MonitoredStates configurados, você pode receber um evento quando:

  • O usuário entrar em uma região de interesse.
  • O usuário sair de uma região de interesse.
  • A cerca geográfica expirar ou for removida. Observe que um aplicativo em segundo plano não é ativado para um evento de remoção.

Este tópico descreve como configurar uma tarefa em segundo plano para alertar seu aplicativo quando ocorrer um evento de cerca geográfica. Mas você também pode manipular eventos diretamente de seu aplicativo quando ele está em execução. Para saber mais, veja Guia de início rápido: manipulando notificações de cerca geográfica em primeiro plano e Diretrizes para cerca geográfica.

Para escutar um evento de cerca geográfica em segundo plano são necessárias algumas etapas:

  • Declarar a tarefa em segundo plano no manifesto do aplicativo.
  • Registrar a tarefa em segundo plano no aplicativo. Se seu aplicativo necessitar de acesso à Internet, digamos para acesso a um serviço em nuvem, você pode definir um sinalizador para isso quando o evento for disparado. Você pode também definir um sinalizador para verificar se o usuário está presente quando o evento for disparado, para assegurar que ele receba a notificação.
  • No Windows, faça o usuário adicionar o aplicativo à tela de bloqueio nas Configurações do Windows. Caso esteja testando seu aplicativo no simulador do Microsoft Visual Studio, adicione o aplicativo à tela de bloqueio fora do simulador.
  • Enquanto seu aplicativo estiver sendo executado em primeiro plano, peça ao usuário para conceder permissões de localização ao aplicativo.

Registrar eventos de alteração de estado de cerca geográfica

No manifesto do aplicativo, na guia Declarações, adicione uma declaração para uma tarefa em segundo plano de localização. Para isso:

  • Adicione uma declaração do tipo Tarefas em Segundo Plano.
  • Defina um tipo de tarefa de propriedade de Localização.
  • Defina um ponto de entrada em seu aplicativo para chamar quando um evento for disparado.

Registrar a tarefa em segundo plano

O código a seguir registra a tarefa em segundo plano de cerca geográfica. Quando a cerca geográfica foi criada, lembre-se de que nós verificamos as permissões de localização. Para saber mais, veja Guia de início rápido: configurando uma cerca geográfica.


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

Observação  No Windows Phone, você deve chamar RequestAccessAsync, mas nenhum prompt é mostrado ao usuário e seu aplicativo não precisa ser fixado na tela de bloqueio. A chamada é necessária simplesmente para alertar o sistema de que seu aplicativo está registrando uma tarefa em segundo plano.

Tópicos relacionados

Mapas
Mapa de aplicativos do Tempo de Execução do Windows em C# e Visual Basic
Mapa de aplicativos do Tempo de Execução do Windows em C++
Desenvolvendo a experiência do usuário para aplicativos
Tarefas
Guia de início rápido: configurando uma cerca geográfica
Guia de início rápido: manipulando notificações de cerca geográfica em primeiro plano
Guia de início rápido: manipulando notificações de cerca geográfica de uma tarefa em segundo plano
Referência
Geoshape
Geofence
Geolocator
Outros recursos
Diretrizes para cercas geográficas

 

 

Mostrar:
© 2015 Microsoft