Este recurso permite que o acesso à localização de aplicativos de assistência ao motorista incluídos na lista de permissões e incluídos no Android seja controlado separadamente pela opção “Usar localização para assistência ao motorista”. Isso permite que esses aplicativos acessem a localização mesmo quando a opção "Usar localização" está desativada.
- O Android 12 não fornece uma API pública para esse recurso. Os aplicativos de assistência ao motorista devem solicitar atualizações de localização normalmente.
- O Android 13 e superior deve fazer uma solicitação de localização para usar
LocationManager.requestLocationUpdates()
e transmitir um objetoLocationRequest
configurado comLocationRequest.setAdasGnssBypass(true)
.
Use a API de desvio de localização de assistência ao motorista
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 Política de lista de permissões para ignorar local .
Verifique o status do interruptor de assistência ao motorista
No Android 13 e superior, você pode verificar o status da chave de assistência ao motorista antes de solicitar atualizações de localização.
// Returns the current status of "Use location for driver assistance". locationManager.isAdasGnssLocationEnabled();
Execute comandos do Android Debug Bridge (ADB)
Para desenvolvimento e teste, você pode verificar ou alterar rapidamente o status da alternância de assistência ao motorista sem usar as Configurações de localização.
- Para usar comandos ADB para verificar ou alterar 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 aplicativos de assistência ao motorista devem ter a permissão WRITE_SECURE_SETTINGS .
- No Android 13 e versões posteriores, a permissão
LOCATION_BYPASS
é necessária.
Adicionar um app à lista de permissões do seu dispositivo
No diretório etc/sysconfig
:
- Adicione o nome do pacote do aplicativo 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 IU de configurações de local, adicione o nome do pacote a config_locationDriverAssistancePackageNames
.
Adicione o URL de divulgação da política de privacidade do aplicativo a AndroidManifest.xml
. O nome dos metadados deve ser privacy_policy
.
<meta-data android:name="privacy_policy" android:value= privacy policy URL/>
Remova a opção "Usar local para assistência ao motorista"
Se você não tiver um aplicativo de assistência ao motorista com localização que solicite localização do Android, poderá comentar o bloco de código para remover a opção para Configurações de localização.
- Abra
packages/apps/Car/Settings/res/xml/location_settings_fragment.xml
e 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 opção, defina
config_defaultAdasGnssLocationEnabled
comofalse
.
Execute o conjunto de testes automotivos
O Google fornece um teste Automotive Test Suite (ATS), que garante que todos os pacotes de assistência ao motorista em um dispositivo foram incluídos na lista de permissões do Google. O teste é configurado remotamente. Você não precisa esperar até a próxima versão do ATS para adicionar um novo pacote. Você pode aprender mais em Testes automotivos completos em uma caixa.