偵錯及測試

Dialer 配備了整合的調試和測試框架,可讓您驗證 Dialer 應用程式功能,而無需呼叫就緒設備。這消除了對藍牙和具有蜂窩服務的連接電話的需求。此撥號器測試框架 (DTF) 簡化了這些流程:

  • 設定真實設備來快速驗證想法通常會消耗時間。
  • 測試多通話功能需要至少三部配備 SIM 卡的手機,其中兩部僅用於撥打電話。
  • 調試撥號器及其相依性。

由於 Dialer 的功能依賴多種技術堆疊,包括電信、電話和藍牙免持配置檔案 (HFP),因此這些依賴項中出現的錯誤和問題可能會導致 Dialer 不穩定。 DTF 使 Dialer 能夠獨立於這些依賴項運作。

特徵

DTF 提供以下功能:

  • 呼叫安置。透過具有Android 調試橋 (adb)廣播的終端撥打和接聽電話,無需呼叫就緒設備。
  • 模擬來電。呼叫功能被嘲笑。這包括保持、靜音、合併和斷開連接。

使用 DTF

注意: DTF 僅在 Android 11 或更高版本中可用。

要使用 DTF:

  1. 建置並安裝CarDialerAppForTesting建置變體,如下所示:
    cd %rRepoRoot%/packages/apps/Car/Dialer
    
    m CarDialerAppForTesting
    
    adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
    

    因此, CarDialerAppForTesting取代了測試裝置上的原始 Dialer 應用程式。

    CarDialerAppForTesting不適用於真實裝置。若要使用真實裝置進行測試,請重新安裝CarDialerApp.apk

命令

以下 adb 指令僅在第一次啟動 Dialer 後才起作用,並且需要初始化廣播接收器。啟動 Dialer 後,必須連接假藍牙裝置。使用以下(設定)連接設備命令來執行此操作。

(設定)連接設備

建立與撥號器的虛假藍牙連接,並且必須先呼叫才能存取所有與呼叫相關的命令。

連接設備:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "connect"

注意:連接了假藍牙裝置後,才能使用下列各指令。

撥打電話

撥打電話:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "addCall" --es "id" "4085524874"

接聽來電

要接聽來電:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "rcvCall" --es "id" "4085524874"

結束通話

要結束通話:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "endCall" --es "id" "4085524874"

保持目前通話

保持目前通話:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "holdCall"

取消保留目前通話

若要取消目前通話的保留:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"

合併通話

將主要呼叫和次要呼叫合併為電話會議。只有當主呼叫和次呼叫同時存在時,此命令才有效。現有的電話會議被視為單一實體。

合併呼叫:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"

清除所有通話

刪除通話清單中的所有通話:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "clearAll"

模擬器構建

有時開發人員可能想要在模擬器上測試 UI 變更。在這種情況下,與更強大的 DTF 相比, CarDialerAppEmulatorBuild提供了簡化的設定和有限的功能。

測試數據

當 Dialer 啟動時,會繞過藍牙錯誤頁面並顯示TelecomActivity的主要內容。聯絡人和通話記錄顯示在本機裝置上。開發人員可以使用庫存聯絡人應用程式建立測試聯絡人或匯入.vcf檔案。

調用嘲笑

若要模擬入站呼叫,請使用 Android 模擬器傳送 Telnet 命令。要了解更多信息,請參閱在 Android 模擬器上運行應用程式發送模擬器控制台命令

telnet localhost 5554
gsm call xxx-xxx-xxxx

在撥號器應用程式中撥打電話或廣播呼叫意圖即可啟動撥出呼叫。

adb shell am start -a android.intent.action.CALL tel:xxx-xxx-xxxx