技術詳情

下圖說明與撥號應用程式互動的系統元件:

與撥號程式互動的元件

圖 1. 與撥號程式互動的元件

  • 系統 UI。底部導覽列面向,用於代管註冊 intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end 意圖的「電話」按鈕。這會啟動使用者的主活動 TelecomActivity

  • 應用程式啟動器。管理整個應用程式清單。撥號程式會使用 android.intent.category.LAUNCHER 宣告 TelecomActivity。從啟動器的應用程式清單中選取電話應用程式,就會顯示 TelecomActivity。

  • 主畫面小工具:在 AOSP 參考資料中,沒有 Home 小工具。原始設備製造商 (OEM) 可能會考慮為撥號程式新增主畫面小工具,以便顯示目前已連結手機的狀態 (以及其他資訊)。

  • 通知中心

    • 來電時會顯示抬頭通知 (HUN)。當撥號程式 InCallServiceImpl 收到來電時,撥號程式會將 HUN 發布至通知中心,顯示電話號碼或聯絡資訊等通話詳細資料。撥號程式也會顯示「接聽」和「拒接」這兩個動作按鈕。輕觸「Answer」按鈕即可接聽來電,InCallServiceImpl 會處理進行中的通話,在通話 UI 中顯示撥號器,並關閉 HUN。點選 HUN 後,系統會以全螢幕顯示「InCall」頁面,並顯示「Answer」和「Reject」按鈕。

    • 未讀的未接來電會顯示通知。點選通知會顯示「通話記錄」頁面,並將未接來電標示為已讀。輕觸「回電」按鈕即可撥打電話,並顯示撥號器的 InCall 使用者介面。

  • Google 助理。使用者可以要求 Google 助理撥打電話,這時可能會顯示「撥號」應用程式 InCall 使用者介面。

  • Google 地圖。透過 Google 地圖撥打給商家時,系統會傳送 DIAL 意圖,並附加電話號碼,以便啟動 Dialpad 頁面,快速撥打電話。

  • CarInputService. 監控方向盤上「通話」和「結束通話」按鈕的實體按鍵。按下:

    • 在沒有來電時,方向盤上的通話按鈕會傳送 DIAL 意圖,並顯示撥號器的撥號鍵盤頁面。

    • 當有來電時,方向盤上的通話按鈕會導致 TelecomManager 接聽來電。

    • 當有來電時,使用者透過方向盤上的「結束通話」按鈕,TelecomManager 就會結束通話。

  • 藍牙

    • PBAPClient. 從手機下載聯絡人,並寫入聯絡人供應器。系統會為每部連線的手機建立帳戶,並將裝置的藍牙 MAC 位址設為帳戶名稱,將 com.android.bluetooth.pbapsink (@string/pbap_account_typepackages/apps/Bluetooth 中定義) 設為帳戶類型。寫入聯絡人提供者的聯絡人會附上帳戶資訊,並在手機連線中斷時清除。PBAPClient 不會直接與撥號器互動,而是將聯絡資訊寫入聯絡資訊提供者。撥號程式會讀取聯絡人供應程式中的聯絡人資料。

    • HfpClientConnectionService:透過 HFP 管理藍牙通話,並將通話回報給電信服務。

  • 電信。Android 電信架構會管理 Android 裝置上的音訊和視訊通話。由於撥號應用程式是預設的電話應用程式,因此會實作 InCallService API,而 InCallController 會將撥號應用程式的 InCallService 實作項目繫結至處理通話。詳情請參閱「建立替代電話應用程式」和「成為預設電話應用程式」。

  • 系統設定。撥號程式會監控 HFP 已連線裝置清單,並在沒有手機透過藍牙連線至撥號程式時顯示錯誤訊息。在 AOSP 參考資料中,連線至藍牙按鈕會將使用者連結至系統的藍牙設定頁面,以便配對新裝置或連線至已配對的裝置。

  • 駕駛人分心等級引擎這項 Android 系統服務會根據車輛的行駛狀態,限制使用者體驗。撥號應用程式必須執行所有 UX 駕駛分心限制。為此,撥號應用程式必須監聽 CarUXRestrictionManager 並實作所有政策。Dialer 必須符合以下規定:

    • 連線至 Car 程式庫,並取得 CarUXRestrictionManager 的例項。

    • 訂閱 CarUxRestrictions 清單中的更新項目,並按照說明文件實作。

    • 以下是撥號應用程式特別需要注意的事項:

      • 「設定」頁面已針對車輛進行最佳化。使用者在開車時無法存取撥號程式設定頁面。輕觸操作列中的「設定」選單時,系統會顯示封鎖畫面,防止使用者在行車時存取「設定」。如果已顯示「設定」頁面,系統會彈出封鎖畫面,停止使用者互動。

      • 開車時無法存取系統設定。在「錯誤」頁面中,如果沒有連線的藍牙裝置,系統會顯示「連線至藍牙」按鈕,以便顯示系統藍牙設定頁面。這個按鈕的 UXR 已全面禁止放送。在行駛期間,點選這個按鈕會顯示錯誤訊息,通知使用者先將車輛停妥,再執行該動作。

      • 使用者無法在開車時啟動新增至收藏夾流程。「新增收藏」按鈕已停用。

使用者流程

Dialer Main

以下提供撥號應用程式的不同頁面。

主要撥號頁面

圖 2. 主要撥號頁面

通話處理

以下是呼叫處理程序流程:

通話處理

圖 3. 通話處理

通知

以下列出各種通知頁面:

通知

圖 4. 通知

通話狀態

以下是「InCall」頁面流程:

通話頁面

圖 5. 通話頁面

搜尋顯示選項如下:

搜尋

圖 6. 搜尋

設定

設定選項如下:

設定

圖 7. 設定