Usando o módulo de localização do Pushwoosh em aplicativos Android
Existem duas categorias de acesso à localização no Android:
- Acesso à localização em primeiro plano
- Acesso à localização em segundo plano
Para atualizar a localização do usuário em primeiro plano, uma das seguintes condições deve ser atendida:
- Uma das atividades do aplicativo está ativa
- O serviço em primeiro plano do tipo foregroundServiceType = “location” é iniciado para o aplicativo
O acesso em segundo plano permite que o aplicativo obtenha a geolocalização do usuário enquanto o aplicativo está inativo e nenhum serviço em primeiro plano do tipo “location” é iniciado para esse aplicativo.
Acesso à localização em primeiro plano
Anchor link toSe você for usar o módulo de localização do Pushwoosh para atualizar a localização do usuário apenas quando seu aplicativo estiver ativo, adicione o módulo pushwoosh-location ao seu app/build.gradle:
implementation 'com.pushwoosh:pushwoosh-location:6.+'Para iniciar o módulo, use o método startLocationTracking:
PushwooshLocation.startLocationTracking();PushwooshLocation.startLocationTracking()Usando o ForegroundService para fazer solicitações de localização quando seu aplicativo está em segundo plano
Anchor link toPara iniciar o ForegroundService quando o método startLocationTracking é chamado, o que permite obter a geolocalização do usuário quando seu aplicativo está em segundo plano, siga os passos descritos no parágrafo anterior, depois adicione os seguintes metadados ao seu AndroidManifest.xml:
...<application>.... <meta-data android:name="com.pushwoosh.start_foreground_service" android:value="true" />...</application>...Quando o ForegroundService é iniciado, uma notificação é criada. Você pode personalizar a notificação especificando os metadados adicionais no AndroidManifest.xml do seu projeto:
...<application>.... <meta-data android:name="com.pushwoosh.foreground_service_notification_text" android:value="My notification text" /> <meta-data android:name="com.pushwoosh.foreground_service_notification_channel_name" android:value="My notification channel name" />...</application>...Acesso à localização em segundo plano
Anchor link toPara atualizar a geolocalização em segundo plano sem iniciar o ForegroundService, você precisará do seguinte:
- Obter a aprovação do Google Play para o acesso do seu aplicativo à localização em segundo plano (consulte https://support.google.com/googleplay/android-developer/answer/9799150?hl=en para detalhes)
- Adicionar a permissão ao seu AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />- Solicitar a permissão do usuário para atualizar a localização em segundo plano após a permissão de localização em primeiro plano ser recebida (encontre as diretrizes na documentação do desenvolvedor Android: https://developer.android.com/training/location/permissions#background-dialog-target-android-11)
Na versão 6.3.2 do módulo pushwoosh-location, incluímos um método adicional que abre a tela de configurações de permissão de localização se as seguintes condições forem atendidas:
- Há a permissão de localização em primeiro plano concedida para o aplicativo;
- A permissão do usuário
ACCESS_BACKGROUND_LOCATIONestá presente no AndroidManifest.xml do aplicativo.
Chame o método da seguinte forma:
PushwooshLocation.requestBackgroundLocationPermission();PushwooshLocation.requestBackgroundLocationPermission()Tipos de permissão do Android 12+
Anchor link toA partir do Android 12, ao ser solicitado a permissão de acesso à localização em primeiro plano, um usuário pode escolher com que frequência e com que precisão o aplicativo obterá a localização do usuário.
Existem dois tipos dessas permissões:
- Localização aproximada, que é igual a ACCESS_COARSE_LOCATION
- Localização precisa, que é igual a ACCESS_FINE_LOCATION e ACCESS_COARSE_LOCATION
Compartilhe seu feedback conosco
Anchor link toSeu feedback nos ajuda a criar uma experiência melhor, então adoraríamos ouvir de você se tiver algum problema durante o processo de integração do SDK. Se você enfrentar alguma dificuldade, não hesite em compartilhar suas opiniões conosco através deste formulário.