Solicitar localização em segundo plano

Esta página aborda os seguintes tópicos:

  • Como solicitar acesso à localização em segundo plano.
  • Como processar a solicitação com base na versão do SDK de destino do app.
  • Como as preferências do usuário para localização aproximada afetam a maneira como o app recebe a localização em segundo plano.
Figura 7. A página "Configurações" inclui uma opção chamada Permitir o tempo todo, que concede acesso à localização em segundo plano.

O conteúdo da caixa de diálogo de permissão depende da versão do SDK de destino

Quando um recurso no app solicita uma localização em segundo plano em um dispositivo com Android 10 (nível 29 da API), a caixa de diálogo de permissões do sistema inclui uma opção chamada Permitir o tempo todo. Se o usuário selecionar essa opção, o recurso no seu app terá acesso à localização em segundo plano.

No Android 11 (API de nível 30) e versões mais recentes, a caixa de diálogo do sistema não inclui a opção Permitir o tempo todo. Em vez disso, os usuários precisam ativar a localização em segundo plano em uma página de configurações, conforme mostrado na Figura 7.

É possível ajudar os usuários a acessar essa página de configurações seguindo as práticas recomendadas ao solicitar a permissão de localização em segundo plano. O processo para conceder a permissão depende da versão do SDK de destino do seu app.

O app é direcionado ao Android 11 ou a versões mais recentes

Se o app não tiver a permissão ACCESS_BACKGROUND_LOCATION e shouldShowRequestPermissionRationale() retornar true, mostre uma interface educacional aos usuários que inclua o seguinte:

  • Uma explicação clara sobre por que o recurso do app precisa de acesso à localização em segundo plano.
  • O rótulo visível para o usuário da opção de configurações que concede a localização em segundo plano (por exemplo, Permitir o tempo todo na Figura 7). Chame getBackgroundPermissionOptionLabel() para receber esse rótulo. O valor de retorno deste método é localizado de acordo com a preferência de idioma do dispositivo do usuário.
  • Uma opção para os usuários recusarem a permissão. Se os usuários recusarem o acesso à localização em segundo plano, poderão continuar usando o app.
Os usuários podem tocar na notificação do sistema para mudar as configurações
  de localização de um app
Figura 8. Notificação que lembra ao usuário que ele concedeu acesso à localização em segundo plano a um app.

O app é direcionado ao Android 10 ou anterior

Quando um recurso no seu app solicitar acesso à localização em segundo plano, os usuários verão uma caixa de diálogo do sistema. Essa caixa de diálogo inclui uma opção para navegar até as opções de permissão de localização do app em uma página de configurações.

Se o app já segue as práticas recomendadas para solicitar permissões de localização, não é preciso modificá-lo para ter compatibilidade com esse comportamento.

O usuário pode afetar a precisão da localização em segundo plano

Se o usuário solicitar o local aproximado, as escolhas dele na caixa de diálogo de permissões de localização também se aplicarão à localização em segundo plano. Em outras palavras, se o usuário conceder ao app a permissão ACCESS_BACKGROUND_LOCATION, mas apenas para acesso ao local aproximado em primeiro plano, o app também terá acesso ao local aproximado em segundo plano.

Outros recursos

Para ter mais informações sobre permissões de localização no Android, consulte o seguinte material:

Codelabs

Vídeos

Amostras

  • App de exemplo para demonstrar o uso de permissões de localização.