調試和測試

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

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

由於 Dialer 的功能依賴於多個技術堆棧,包括 Telecom、Telephony 和 Bluetooth Hands Free Profile (HFP),因此這些依賴項中出現的錯誤和問題可能會導致 Dialer 不穩定。 DTF 使 Dialer 能夠獨立於這些依賴項運行。

特徵

DTF 提供以下功能:

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

使用 DTF

注意: DTF 僅適用於 Android 11 或更高版本。

要使用 DTF:

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

    因此, CarDialerAppForTesting替換了測試設備上的原始撥號器應用程序。

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

命令

以下 adb 命令僅在 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 Emulator 發送 Telnet 命令。要了解更多信息,請參閱在 Android 模擬器上運行應用程序發送模擬器控制台命令

telnet localhost 5554
gsm call xxx-xxx-xxxx

在 Dialer 應用程序中撥打電話或廣播呼叫意圖會啟動出站呼叫。

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