Android カメラサービスを使用する

Android カメラサービスは、車載デバイスのほかスマートフォンやタブレット、テレビなどのフォーム ファクタでも使用するカメラスタックで構成されています。カメラの全体的なアーキテクチャについては、カメラをご覧ください。このページでは、車載デバイスに特化したトピックと、Android Camera API の活用方法を取り上げています。

Android カメラサービスを有効にする

車載プラットフォームで Android カメラサービスを有効にするには、製品の makefile で ENABLE_CAMERA_SERVICEtrue に指定する必要があります。

車載専用カメラの特性

車載デバイスに関して言うと、カメラ HAL は、車載フォーム ファクタに固有の 2 つの特性を備えている必要があります。

名前 説明
android.automotive.location 車両のボディフレームに対するカメラの位置を指定します。
android.automotive.lens.facing 車両のボディフレームおよび助手席に対するカメラレンズの向きを示します。

特定の位置情報やレンズの向きに合わせてカメラが正確に調整されていない場合(android.automotive.location または android.automotive.lens.facing 特性に *_OTHER が示されます)、あるいは複数のカメラで同じ位置情報と方向を共有している場合、カメラ HAL は、アプリがカメラ位置を正確に特定できるよう他の特性を提供しなければなりません。主な特性は次のとおりです。

ヘッドレス システム ユーザーにアクセスを許可する

特定のシステムおよびファースト パーティ(1P)アプリは、ヘッドレス システム ユーザー(ユーザー 0)としてカメラにアクセスできます。この機能があることで、安全性を重視するアプリ(リアビュー カメラなど)は、フォアグラウンド ユーザーの切り替えがあろうとなかろうと、中断することなくカメラ ストリーミングを継続できます。プラットフォームで署名された新たな android.permission.CAMERA_HEADLESS_SYSTEM_USER 権限を持つアプリだけが、ユーザー 0 としてカメラにアクセスできます。

ユーザー 0 としてカメラにアクセスするアプリは、そのカメラデータをローカルで消費しなければなりません。カメラデータから派生するデータも含めて、デバイス外への一切の送信が禁止されています。これらのアプリには android.permission.CAMERA 権限の事前付与が求められ、GAS 要件の Design for Driving で概説されている事前付与権限ポリシーに準拠する必要があります。

カメラのプライバシー許可リストを構成する

相手先ブランド製品製造企業(OEM)は、特定のカメラアプリを構成し、カメラアクセス許可リストに含めることができるようになりました。これにより、カメラ プライバシーのトグル ステータスに関係なく、カメラへのアクセスが許可されます。この機能があれば、ユーザーはソーシャル メディアやビデオ会議などのエンタメアプリに対するカメラアクセスを無効にしながら、許可リストに登録済みのアプリにはカメラアクセスを許可できます。

この機能を使用できるのは、android.permission.CAMERA_PRIVACY_ALLOWLIST 権限を付与されているシステムと特権アプリに限られます。Google Automotive Services(GAS)パートナーは許可リストに登録済みのアプリを審査に出し、プライバシー許可リストのポリシーに準拠する必要があります。詳しくは、自動車向け Android をご覧ください。

アプリを許可リストに追加する

etc/sysconfig ディレクトリで:

  1. システム構成 XML ファイルにアプリのパッケージ名を追加します。

    <!-- In an xml file under etc/sysconfig —>
    
    <!--
    Allowlisted packages for the camera privacy toggle. Users will not be able to turn the privacy on for these packages as OEM requires camera access for these packages to preserve user safety.
    -->
    
    <config>
        <camera-privacy-allowlisted-app package="package_name" />
    </config>
    
  2. アプリのプライバシー ポリシー開示に関する URL を AndroidManifest.xml に追加します。meta-data の名前は privacy_policy としてください。

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

デフォルトでは、許可リストに登録済みのアプリや必須アプリに対するカメラ プライバシーのトグルは、プライバシー設定 UI に表示されません。ただし、次のフラグを TRUE に設定することにより、OEM はこの動作をオーバーライドできます。これにより OEM は、必須アプリに対するカメラ プライバシーのトグル表示を、好みに応じてカスタマイズできるようになります。

<!-- Whether to show the toggle to turn on the camera privacy for required apps -->

<bool name="config_show_camera_required_apps_toggle">false</bool>

カメラに早期アクセスする

明確な時間的制約がありながら安全性を重視するアプリは、Android の起動プロセスが終了する前にカメラにアクセスできます。ただし、アクセスを許可されているのは UID AID_AUTOMOTIVE_EVS を持つ特権クライアントのみです。特定の UID をネイティブ アプリに割り当てる方法については、任意アクセス制御(DAS)をご覧ください。カメラに早期アクセスできるのは、車体の外部に配置されたシステムカメラに限定されています。