リファレンス アプリをカスタマイズする

このセクションでは、Control Center リファレンス アプリと UI をカスタマイズする方法について説明します。

ユーザーフローとユーザー インターフェース

このセクションでは、ユーザーフローと Control Center の起動方法について説明します。

Control Center を起動する

Control Center は、アプリ ランチャー またはシステム UI ナビゲーション バー のアイコンから起動できます。このアイコンは、バックグラウンドの可視ユーザーを有効にした ビルドでのみ表示されます(詳しくは、UserHandleAwareをご覧ください)。

Control Center はいつでも表示できます。Control Center は、半透明のウィンドウと透明な背景を組み合わせたもので、再生中の動画やメディアなど、他のアプリの上に表示できます。アプリのランディング ページ では、次の操作を行うことができます。

  • 画面の配置と、ローカル 画面とリモート 画面の使用。
  • メディアとメディア コントロールが設定された画面。
  • 各画面でメディア(など)のコントロールの詳細ビューを表示する方法。

画面の配置は、車両内の画面のレイアウトを表します。各画面は DevicePickerScreen です。各画面の位置とサイズをカスタマイズするには、ランタイム リソース オーバーレイ(RRO)を使用します。詳しくは、 実行時にアプリのリソースの値を変更するをご覧ください。

Control Center が開いているディスプレイごとに、明るいハイライト表示の枠線が付いた別の画面が表示されます。これはローカル 画面で、使用中のディスプレイです。

他のすべての画面はリモート 画面で、Fragment 内の画面の配置に基づいて識別できる、車内の別のディスプレイを表します。車両に構成されている乗員ゾーンの合計数を計算するには、CarOccupantZoneManager#getAllOccupantZones を使用します。

各画面は、カスタム属性 controlcenter:occupantZoneId を定義して、データをそれぞれの乗員ゾーンに関連付けます。特定のディスプレイでメディア アプリが再生されると、対応する画面にメディアのアルバムアートが表示されます。画面の下に [再生](または [一時停止])ボタンが表示されます。

アクティブなメディア アプリが可視タスク(Control Center の背面に開いている)の場合、[再生] ボタンの横にある [共有] ボタンが有効になり、[ミラーリング] ページが開きます。[共有] を使用すると、メディア アプリの表示を共有できます。これは、動画を含むメディア アプリに最適です。

画面要素

画面をタップすると、ディスプレイで再生中のメディアの詳細ビューが表示されます。 これは詳細画面 と呼ばれます。このビューには、タイトル、再生の進行状況、アーティストなどのメディア メタデータが表示されます。これらのボタンを使用すると、乗員ゾーンをさらに制御できます。

  • [音声出力] には、キャビン スピーカーやヘッドフォンなど、メディアを再生している音声出力が表示されます。[音声出力] をタップすると、音声出力とメディアの音量を変更するダイアログが開きます。

  • [ディスプレイ入力ロック] をタップすると、画面への入力がロックされます。この操作は、運転席の画面には適用できません。

  • [ディスプレイの電源] をタップすると、画面の電源がオフになります。この操作は、運転席の画面には適用できません。

メディアが Control Center アプリの背面の可視タスクの場合、[詳細] ビューに [共有] ボタンが表示されます。このボタンをタップすると、 [ミラーリング] ページが開きます。

送信者(上)と受信者(下)のミラーリングと同時視聴のフロー
図 2.送信者(上)と受信者(下)の間のミラーリング ページと同時視聴のフロー。

同時視聴セッションを開始する

[ミラーリング] ページは、RRO を使用している点で [ランディング ページ] と似ています。

同時視聴する画面を追加するには、画面をタップして [完了] をタップします。

これにより、共有アプリをホストする Mirroring Activity が開き、同時視聴セッションを終了したり、[ミラーリング] ページに戻って参加者を追加または削除したりするためのフローティング一時コントロールが表示されます。

共有アプリと、共同視聴セッションを管理するためのフローティング コントロールが表示されているミラーリング アクティビティ。
図 3.フローティング一時コントロールを備えたミラーリング アクティビティ。

概要

Control Center のさまざまなページを以下にまとめます。

コントロール センター アプリ内のさまざまなページと切り替えを示すフローチャート。
図 4.Control Center のページ。

カスタマイズのガイドライン

Control Center は Car UI library を使用してカスタマイズできます。 ベーステーマと構造は、次の制限に従って変更を加えずに導入または変更できます。

カスタマイズ 説明
すべきである

RRO を使用して、次のような全体のテーマとスタイルを調整します。

  • カラーパレット
  • サイズ
  • テキストの外観
  • ダイアログの外観
  • ドローアブル
  • 構成値
してもよい Control Center の高レベル UI 構造を変更します。

Control Center は、メディア、通知センター、アプリ ランチャーを含むシステムアプリのスイートに属しています。これらのアプリは、AOSP 構造のさまざまなレベルで定義されたスタイルとアセットを共有します。

framework/base/core
Android のベーススタイルはすべて、ここで定義されています。特に、システムアプリ テーマはすべて、OEM がデバイスのデフォルトの外観をカスタマイズするためのテーマである Theme.DeviceDefault に基づいています。

packages/services/Car/car_product/overlay:
このフォルダには、Android Automotive の AOSP のデザインを生成するために使用される Theme.DeviceDefault のオーバーライドが含まれています。OEM はこのオーバーレイを除外し、独自のオーバーレイを使用することもできます。

packages/apps/Car/libs/car-ui-lib:
このライブラリは、システムアプリとカスタマイズ用に設計されたバンドルされていないアプリに共通の、AAOS コンポーネントとリソースを定義します。詳しくは、 Car UI ライブラリ統合ガイドをご覧ください。

packages/apps/Car/libs/car-apps-common:
AOSP が提供するシステムアプリ間で共有される共通の色とスタイルです。オーバーレイを使用して、これらの要素をカスタマイズできます(packages/services/Car/car_product/overlay と同様)。

packages/apps/Car/MultiDisplay/ControlCenter:
すべてのシステムアプリには、Theme.CarUi から拡張され、car-ui-lib で定義されたテーマがあります。ControlCenterActivity は、Theme.CarUi を拡張するカスタムの Theme.Transparent を使用します。

フロー(ミラーリングされたタスクを表示する必要がある同時視聴など)をサポートするために、Control Center は、アプリをバックグラウンドに送信したり、Lifecycle events を送信したりしない、半透明のウィンドウと透明な背景の組み合わせを使用します。

<style name="Theme.Transparent" parent="@style/Theme.CarUi.NoToolbar">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@color/transparent</item>
</style>