API de desvio de localização automotiva,API de desvio de localização automotiva,API de desvio de localização automotiva

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

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

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

  1. Adicione o nome do pacote do aplicativo 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 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.

  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 opção, defina config_defaultAdasGnssLocationEnabled como false .

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.