Esse recurso permite que o acesso à localização de apps de assistência ao motorista com lista de permissões e empacotados no Android seja controlado separadamente pelo botão "Usar localização para assistência ao motorista". Isso permite que esses apps acessem a localização mesmo quando a opção "Usar a localização" está desativada.
- O Android 12 não oferece uma API pública para esse recurso. Os apps de assistência ao motorista precisam solicitar atualizações de local normalmente.
- O Android 13 e versões mais recentes precisam fazer uma solicitação de localização
para usar
LocationManager.requestLocationUpdates()
e transmitir um objetoLocationRequest
configurado comLocationRequest.setAdasGnssBypass(true)
.
Usar a API Driver Assistance Location Bypass
As seções a seguir descrevem como usar a API de desvio de localização de assistência ao motorista. Para saber mais sobre a política de uso, consulte a Política de permissões de desvio de local.
Verificar o status da chave de assistência ao motorista
No Android 13 e versões mais recentes, é possível verificar o status da chave de assistência ao motorista antes de solicitar atualizações de local.
// Returns the current status of "Use location for driver assistance". locationManager.isAdasGnssLocationEnabled();
Executar comandos do Android Debug Bridge (ADB)
Para desenvolvimento e testes, é possível verificar ou mudar rapidamente o status do botão de assistência ao motorista sem usar as Configurações de local.
- Para usar comandos ADB para verificar ou mudar o status:
// Gets the status of ADAS location. adb shell cmd location is-adas-gnss-location-enabled // Enables ADAS location. adb shell cmd location set-adas-gnss-location-enabled true // Disables ADAS location. adb shell cmd location set-adas-gnss-location-enabled false
Definir permissão
Consulte o seguinte para versões específicas do Android:
- No Android 12, os apps de assistência ao motorista precisam ter a permissão WRITE_SECURE_SETTINGS.
- No Android 13 e versões mais recentes, a
permissão
LOCATION_BYPASS
é necessária.
Adicionar um app à lista de permissões no seu dispositivo
No diretório etc/sysconfig
:
- Adicione o nome do pacote do app em um arquivo XML de configuração do sistema:
<!-- In a xml file under etc/sysconfig–> <config> … <allow-adas-location-settings package="PACKAGE-NAME" /> … </config>
Para garantir que seu pacote apareça na interface de configurações de local, adicione o nome do pacote a
config_locationDriverAssistancePackageNames
.
Adicione o URL da Política de Privacidade do app a AndroidManifest.xml
. O nome
dos metadados precisa ser privacy_policy
.
<meta-data android:name="privacy_policy" android:value= privacy policy URL/>
Remover a opção "Usar localização para assistência ao motorista"
Se você não tiver um app de assistência ao motorista com base na localização que solicite a localização do Android, comentaria o bloco de código para remover a chave de "Configurações de local".
- Abra
packages/apps/Car/Settings/res/xml/location_settings_fragment.xml
e comente o seguinte código.<com.android.car.ui.preference.CarUiTwoActionSwitchPreference android:fragment="com.android.car.settings.location.AdasLocationFragment" android:key="@string/pk_location_driver_assistance_state_switch" android:title="@string/location_driver_assistance_toggle_title" android:summary="@string/location_driver_assistance_toggle_summary" settings:controller="com.android.car.settings.location.AdasLocationSwitchPreferenceController" settings:searchable="true"/> <com.android.car.settings.common.DividerPreference/>
- Depois de remover a chave, defina
config_defaultAdasGnssLocationEnabled
comofalse
.
Executar o conjunto de testes automotivos
O Google oferece um teste de conjunto de testes automotivos (ATS, na sigla em inglês), que garante que todos os pacotes de assistência ao motorista em um dispositivo tenham sido incluídos na lista de permissões do Google. O teste é configurado remotamente. Não é necessário esperar até a próxima versão do ATS para adicionar um novo pacote. Saiba mais em Testes automotivos completos em uma caixa.