技術詳情

下圖說明了與 Dialer 互動的系統組件:

與 Dialer 互動的元件

圖 1.與 Dialer 互動的組件

  • 系統使用者介面。較低的導航面承載電話按鈕,按鈕註冊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 參考中,沒有 Home 小工具。 OEM 可能需要考慮為 Dialer 添加一個 Home 小部件,以顯示當前連接的手機的狀態(以及其他資訊)。

  • 通知中心

    • 來電時會顯示平視通知 (HUN)。當 Dialer InCallServiceImpl收到來電時,Dialer 會將 HUN 發佈到通知中心,其中顯示呼叫詳細資訊,例如電話號碼或聯絡資訊。撥號器也顯示兩個操作按鈕:應答和拒絕。點擊「應答」按鈕,即可應答呼叫, InCallServiceImpl會處理活動呼叫以顯示撥號器的通話 UI 並消除 HUN。按一下 HUN 將顯示全螢幕 InCall 頁面,其中包含「應答」和「拒絕」按鈕。

    • 對於未讀取的未接來電,會顯示通知。點擊通知將顯示「通話記錄」頁面並將未接來電標記為已讀。點選回撥按鈕可​​發出通話並顯示撥號器的 InCall 使用者介面。

  • 助手。使用者可以要求助理撥打可能會顯示 Dialer InCall 使用者介面的通話。

  • 谷歌地圖。從 Google 地圖呼叫商家會發送帶有額外電話號碼的 DIAL 意圖,這將啟動 Dialpad 頁面以進行快速撥號。

  • 汽車輸入服務。監控方向盤上「呼叫」和「結束呼叫」按鈕的實體按鍵。按:

    • 當沒有來電時,方向盤上的呼叫按鈕會發送 DIAL 意圖並顯示 Dialer 的 Dialpad 頁面。

    • 當有來電時,方向盤上的呼叫按鈕會使 TelecomManager 接聽電話。

    • 方向盤上的「結束通話」按鈕有來電時,TelecomManager 結束通話。

  • 藍牙

    • PBAP 用戶端。從手機下載聯絡人並將其寫入聯絡人提供者提供者。對於每部連接的手機,都會建立一個帳戶,其中裝置的藍牙 MAC 位址作為帳戶名稱, com.android.bluetooth.pbapsink@string/pbap_account_typepackages/apps/Bluetooth中定義)作為帳戶類型。寫入聯絡人提供者提供程式的聯絡人會與帳戶資訊一起寫入,並在電話中斷連線時清除。 PBAPClient不會直接與 Dialer 交互,而是將聯絡人寫入聯絡人提供者提供者。撥號器從聯絡人提供者讀取聯絡人。

    • HfpClientConnectionService透過 HFP 管理藍牙呼叫並將通話報告給電信服務。

  • 電信。 Android Telecom 框架管理 Android 裝置上的音訊和視訊通話。由於 Dialer 是預設的電話應用程序,因此它實作了InCallService API,並且InCallController將綁定 Dialer 的 InCallService 實作來處理呼叫。有關更多詳細信息,請參閱創建替換手機應用程式成為預設手機應用程式

  • 系統設定。 Dialer 監控 HFP 連接的裝置列表,並在沒有電話透過藍牙連接到 dialer 時顯示錯誤訊息。在 AOSP 參考中,「連接到藍牙」按鈕將使用者連結到系統「藍牙設定」頁面以配對新裝置或連接到已配對的裝置。

  • 駕駛員分心引擎。這個Android系統服務根據汽車的駕駛狀態施加UX限制。 Dialer 必須執行所有 UX 駕駛分心限制。為此,Dialer 必須偵聽CarUXRestrictionManager並實作所有策略。撥號器必須:

    • 連接到Car庫並取得CarUXRestrictionManager的實例。

    • 訂閱CarUxRestrictions清單中的更新並依照記錄實作它們。

    • 對 Dialer 特別重要的是:

      • 設定頁面針對車輛進行了最佳化。用戶在駕駛時無法存取撥號器設定頁面。透過點擊操作列中的「設定」選單,會顯示一個阻止螢幕,以防止使用者在駕駛時存取「設定」。如果已經顯示「設定」頁面,則會彈出封鎖畫面以阻止使用者互動。

      • 駕駛時無法存取系統設定。在錯誤頁面上,當沒有連接藍牙裝置時,連接到藍牙按鈕會顯示系統藍牙設定頁面。該按鈕的 UXR 受到完全限制。駕駛時,按一下此按鈕會顯示錯誤訊息,通知使用者先停車,然後再執行操作。

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

用戶流量

撥號器主

下面提供了撥號器的不同頁面。

主撥號器頁面

圖 2.主撥號器頁面

呼叫處理

呼叫處理流程如下:

呼叫處理

圖 3.呼叫處理

通知

不同的通知頁面如下所示:

通知

圖 4.通知

通話狀態

InCall頁面流程如下所示:

通話中頁面

圖 5. InCall 頁面

搜尋顯示為:

搜尋

圖 6.搜尋

設定

設定選項有:

設定

圖 7.設定