API Automotive Location Bypass

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

  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

Confira as versões do Android específicas para cada versão:

  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 é obrigató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 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.

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

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.