API Automotive Location Bypass

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 objeto LocationRequest configurado com LocationRequest.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.

  1. 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:

  1. No Android 12, os apps de assistência ao motorista precisam ter a permissão WRITE_SECURE_SETTINGS.
  2. 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:

  1. Adicione o nome do pacote do app em um arquivo XML de configuração do sistema:
  2. <!-- 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".

  1. 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/>
  2. Depois de remover a chave, defina config_defaultAdasGnssLocationEnabled como false.

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.