次の図は、Dialer と対話するシステム コンポーネントを示しています。
図 1. Dialer と対話するコンポーネント
システムUI。電話ボタンをホストする下部ナビゲーション ファセット。
intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end
意図。これにより、ユーザーのメイン アクティビティであるTelecomActivity
が開始されます。アプリランチャー。アプリリスト全体を管理します。 Dialer は、
android.intent.category.LAUNCHER
を使用して TelecomActivity を宣言します。ランチャーのアプリリストから電話アプリを選択すると、TelecomActivity が表示されます。ホームウィジェット。 AOSP リファレンスには、ホーム ウィジェットはありません。 OEM は、現在接続されている電話の状態 (およびその他の情報) を表示するために、ダイヤラーのホーム ウィジェットを追加することを検討することをお勧めします。
通知センター
着信に対してヘッズアップ通知 (HUN) が表示されます。 Dialer
InCallServiceImpl
が着信を受信すると、Dialer は HUN を通知センターにポストし、電話番号や連絡先情報などの通話の詳細を表示します。ダイヤラには、応答と拒否という 2 つのアクション ボタンも表示されます。 [応答] ボタンをタップすると、通話が応答され、InCallServiceImpl
アクティブな通話を処理してダイヤラーの通話中 UI を表示し、HUN を閉じます。 HUN をクリックすると、応答ボタンと拒否ボタンのある全画面の InCall ページが表示されます。未読の不在着信については通知が表示されます。通知をクリックすると、[通話履歴] ページが表示され、不在着信に既読のマークが付けられます。 [コールバック] ボタンをタップすると電話がかかり、ダイヤラの InCall ユーザー インターフェイスが表示されます。
アシスタント。ユーザーはアシスタントに、Dialer InCall ユーザー インターフェイスを表示する電話をかけるよう依頼できます。
グーグルマップ。 Google マップから販売者に電話すると、追加の電話番号を含む DIAL インテントが送信され、クイック ダイヤル用の Dialpad ページが開始されます。
CarInputService。ステアリングホイールの通話ボタンと通話終了ボタンの物理キーを監視します。を押すと:
着信がないときにステアリング ホイールの通話ボタンを押すと、DIAL インテントが送信され、ダイヤラーのダイヤルパッド ページが表示されます。
着信時にステアリングホイールの通話ボタンを押すと、TelecomManager が通話に応答します。
着信中にステアリングホイールの「通話終了」ボタンを押すと、TelecomManager が通話を終了します。
ブルートゥース
PBAPCクライアント。電話機から連絡先をダウンロードし、連絡先プロバイダーに書き込みます。接続されている電話機ごとに、デバイスの Bluetooth MAC アドレスをアカウント名として、
com.android.bluetooth.pbapsink
(packages/apps/Bluetooth
で定義された@string/pbap_account_type
) をアカウント タイプとして使用してアカウントが作成されます。連絡先プロバイダーに書き込まれる連絡先にはアカウント情報が書き込まれ、電話が切断されると消去されます。PBAPClient
Dialer と直接対話せず、代わりに連絡先を連絡先プロバイダーに書き込みます。ダイヤラーは連絡先プロバイダーから連絡先を読み取ります。HfpClientConnectionService
。 HFP を通じて Bluetooth 通話を管理し、通話を通信サービスに報告します。
テレコム。 Android Telecom フレームワークは、Android デバイス上の音声通話とビデオ通話を管理します。 Dialer はデフォルトの電話アプリであるため、
InCallService
API を実装し、InCallController
Dialer の InCallService 実装をバインドして通話を処理します。詳細については、 「代替の電話アプリを作成する」および「デフォルトの電話アプリになる」を参照してください。システム設定。ダイヤラは HFP 接続デバイス リストを監視し、Bluetooth 経由で電話機がダイヤラに接続されていない場合はエラー メッセージを表示します。 AOSP リファレンスでは、[Bluetooth に接続] ボタンによりユーザーがシステムの Bluetooth 設定ページにリンクされ、新しいデバイスをペアリングしたり、ペアリングされたデバイスに接続したりできます。
ドライバーの気晴らしエンジン。この Android システム サービスは、車の運転状態に基づいて UX 制限を課します。ダイヤラは、すべての UX 運転注意散漫制限を実行する必要があります。これを行うには、ダイヤラはCarUXRestrictionManagerをリッスンし、すべてのポリシーを実装する必要があります。ダイヤラーは次のことを行う必要があります。
Carライブラリに接続し、 CarUXRestrictionManagerのインスタンスを取得します。
CarUxRestrictionsのリストで更新を購読し、文書に従って実装します。
Dialer にとって特に重要なことは次のとおりです。
設定ページは車両に最適化されています。ユーザーは運転中にダイヤラ設定ページにアクセスできませんでした。アクション バーから [設定] メニューをタップすると、ユーザーが運転中に [設定] にアクセスできないようにするブロック画面が表示されます。 [設定] ページがすでに表示されている場合は、ブロック画面がポップアップ表示され、ユーザーの操作が停止されます。
運転中はシステム設定にアクセスできません。 [エラー] ページで、Bluetooth デバイスが接続されていない場合、[Bluetooth に接続] ボタンをクリックすると、システムの Bluetooth 設定ページが表示されます。このボタンのUXRは完全に制限されています。運転中にこのボタンをクリックすると、まず車を駐車してからアクションを実行するようにユーザーに通知するエラー メッセージが表示されます。
ユーザーは運転中にお気に入りに追加フローを開始できません。 [お気に入りを追加] ボタンが無効になります。
ユーザーフロー
ダイヤラメイン
Dialer のさまざまなページを以下に示します。
図 2.メイン ダイヤラー ページ
通話処理
通話処理のプロセス フローを以下に示します。
図 3.通話処理
通知
さまざまな通知ページが以下に表示されます。
図 4.通知
通話中ステータス
InCall ページのフローを以下に示します。
図 5. InCall ページ
検索
検索表示は次のとおりです。
図 6.検索
設定
設定オプションは次のとおりです。
図 7.設定