API обхода автомобильного местоположения

Эта функция позволяет отдельно контролировать доступ к местоположению включенных в разрешенный список приложений помощи водителю, входящих в состав Android, с помощью переключателя «Использовать местоположение для помощи водителю». Это позволяет этим приложениям получать доступ к местоположению, даже если переключатель «Использовать местоположение» выключен.

  • Android 12 не предоставляет общедоступный API для этой функции. Приложения помощи водителю должны запрашивать обновления местоположения, как обычно.
  • Android 13 и более поздних версий должен сделать запрос местоположения, чтобы использовать LocationManager.requestLocationUpdates() и передать объект LocationRequest , настроенный с помощью LocationRequest.setAdasGnssBypass(true) .

Используйте API обхода местоположения для помощи водителю

В следующих разделах описывается, как использовать API обхода местоположения для помощи водителю. Дополнительные сведения о политике использования см. в разделе Политика обхода разрешенных списков местоположения .

Проверьте состояние переключателя помощи водителю

В Android 13 и более поздних версиях вы можете проверить состояние переключателя помощи водителю, прежде чем запрашивать обновления местоположения.

// Returns the current status of "Use location for driver assistance".
locationManager.isAdasGnssLocationEnabled();

Запуск команд Android Debug Bridge (ADB)

Для разработки и тестирования вы можете быстро проверить или изменить статус переключателя помощи водителю, не используя настройки местоположения.

  1. Чтобы использовать команды ADB для проверки или изменения статуса:
    // 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
    

Установить разрешение

См. следующие выпуски Android для конкретных версий:

  1. В Android 12 приложения помощи водителю должны иметь разрешение WRITE_SECURE_SETTINGS .
  2. В Android 13 и более поздних версиях требуется разрешение LOCATION_BYPASS .

Добавьте приложение в белый список на своем устройстве

В каталоге etc/sysconfig :

  1. Добавьте имя пакета приложения в XML-файл конфигурации системы:
  2. <!-- In a xml file under etc/sysconfig–>
    <config>
    …
    <allow-adas-location-settings package="PACKAGE-NAME" />
    …
    </config>
    

Чтобы ваш пакет отображался в пользовательском интерфейсе настроек местоположения, добавьте имя вашего пакета в config_locationDriverAssistancePackageNames .

Добавьте URL-адрес приложения для раскрытия политики конфиденциальности в AndroidManifest.xml . Имя метаданных должно быть privacy_policy .

<meta-data android:name="privacy_policy" android:value= privacy policy URL/>

Удалить пункт «Использовать местоположение для переключателя помощи водителю».

Если у вас нет приложения помощи водителю на основе определения местоположения, которое запрашивает местоположение у Android, вы можете закомментировать блок кода, чтобы удалить переключатель для настроек местоположения.

  1. Откройте packages/apps/Car/Settings/res/xml/location_settings_fragment.xml , а затем закомментируйте следующий код.
    <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. После удаления переключателя установите для config_defaultAdasGnssLocationEnabled значение false .

Запустите набор автомобильных тестов

Google предоставляет тест Automotive Test Suite (ATS), который гарантирует, что все пакеты помощи водителю на устройстве внесены в список разрешенных Google. Тест настраивается удаленно. Вам не нужно ждать следующего выпуска ATS, чтобы добавить новый пакет. Вы можете узнать больше в разделе «Полные автомобильные тесты в коробке».