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

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

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

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

Launch Control Center

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

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

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

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

コントロール センターが開いているディスプレイごとに、明るいハイライト表示の枠線が付いた異なる画面が表示されます。これはローカル画面、つまり使用中のディスプレイです。

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

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

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

画面要素

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

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

  • [Display Input Lock] は、画面への入力をロックします。この操作はドライバーの画面には適用できません。

  • [Display Power] は、画面の電源をオフにします。この操作はドライバーの画面には適用できません。

メディアがコントロール センター アプリの背後にある表示可能なタスクの場合、[詳細] ビューに [共有] ボタンが表示されます。このボタンをタップすると、ミラーリング ページが開きます。

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

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

ミラーリング ページは、RRO を使用してランディング ページと同様に機能します。

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

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

共有アプリを表示するミラーリング アクティビティ。フローティング コントロールで同時視聴セッションを管理できます。
図 3. 一時的なフローティング コントロールによるミラーリング アクティビティ。

概要

コントロール センターの各ページについて、以下に概要を示します。

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

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

コントロール センターでは、Car UI ライブラリを使用してカスタマイズできます。ベーステーマと構造は、次の制限に従って変更を加えずに導入または変更できます。

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

次のような RRO を通じて全体のテーマとスタイルを調整する。

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

コントロール センターは、メディア、通知センター、アプリ ランチャーを含むシステムアプリのスイートに属しています。これらのアプリは、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 を使用します。

(ミラーリングされたタスクの表示が必要な同時視聴などの)フローをサポートするため、コントロール センターでは、アプリをバックグラウンドに送ったり 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>