Esse recurso permite que o acesso à localização de apps de assistência ao motorista incluídos na lista de permissões e no Android seja controlado separadamente pela chave "Usar localização para assistência ao motorista". Isso permite que esses apps acessem o local mesmo quando a chave "Usar localização" está desativada.
- O Android 12 não oferece uma API pública para esse recurso. Os apps de assistência ao motorista devem solicitar atualizações de localização normalmente.
- O Android 13 e versões mais recentes precisam fazer uma solicitação de localização
para usar
LocationManager.requestLocationUpdates()e transmitir um objetoLocationRequestconfigurado comLocationRequest.setAdasGnssBypass(true).
Usar a API de desvio de localização para assistência ao motorista
As seções a seguir descrevem como usar a API de desvio de localização para assistência ao motorista. Para saber mais sobre a política de uso, consulte Política de lista de permissões para ignorar localização.
Verificar o status do interruptor 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 teste, é possível verificar ou mudar rapidamente o status do botão de assistência ao motorista sem usar as configurações de localização.
- 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
Confira as versões do Android específicas para cada versão:
- 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é obrigató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 das configurações de localização, adicione o nome dele a
config_locationDriverAssistancePackageNames.
Adicione o URL da declaração 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 que use a localização do Android, comente o bloco de código para remover a chave das configurações de localização.
- Abra
packages/apps/Car/Settings/res/xml/location_settings_fragment.xmle comente o código a seguir.<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_defaultAdasGnssLocationEnabledcomofalse.
Executar o conjunto de testes automotivos
O Google oferece um teste do 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.