Automotive Location Bypass API

この機能を使用すると、許可リストに登録されている、Android にバンドルされている運転支援アプリの位置情報へのアクセスを、「運転支援に位置情報を使用する」スイッチによって個別に制御できるようになります。これにより、「位置情報の使用」スイッチがオフの場合でも、これらのアプリは位置情報にアクセスできるようになります。

  • Android 12 では、この機能のパブリック API が提供されていません。運転支援アプリは通常どおり位置情報の更新を要求する必要があります。
  • Android 13 以降ではLocationManager.requestLocationUpdates()を使用して位置情報リクエストを作成し、 LocationRequest.setAdasGnssBypass(true)で構成されたLocationRequestオブジェクトを渡す必要があります。

ドライバー アシスタンス位置情報バイパス API を使用する

次のセクションでは、ドライバー アシスタンス位置情報バイパス API の使用方法について説明します。使用ポリシーの詳細については、 「ロケーション バイパス許可リスト ポリシー」を参照してください。

運転支援スイッチの状態を確認する

Android 13 以降では、位置情報の更新をリクエストする前に、ドライバー アシスタンス スイッチのステータスを確認できます。

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

Android デバッグ ブリッジ (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>
    

パッケージが位置設定 UI に確実に表示されるようにするには、パッケージ名を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_defaultAdasGnssLocationEnabledfalseに設定します。

Automotive テスト スイートを実行する

Google は、デバイス上のすべての運転支援パッケージが Google の許可リストに登録されていることを確認する Automotive Test Suite (ATS) テストを提供しています。テストはリモートで構成されます。新しいパッケージを追加するために、次の ATS リリースまで待つ必要はありません。詳細については、 「Complete Automotive Tests in a Box」を参照してください。