Dialer 配備了一個集成的調試和測試框架,使您能夠驗證 Dialer 應用程序的功能,而無需呼叫就緒設備。這消除了對藍牙和具有蜂窩服務的連接電話的需求。此撥號器測試框架 (DTF) 簡化了這些過程:
- 設置一個真實的設備來快速驗證想法通常會耗費時間。
- 測試多路通話功能至少需要三部配備 SIM 卡的手機,其中兩部僅用於撥打電話。
- 調試撥號器及其依賴項。
由於 Dialer 的功能依賴於多個技術堆棧,包括 Telecom、Telephony 和 Bluetooth Hands Free Profile (HFP),因此這些依賴項中出現的錯誤和問題可能會導致 Dialer 不穩定。 DTF 使 Dialer 能夠獨立於這些依賴項運行。
特徵
DTF 提供以下功能:
- 呼叫安置。通過帶有Android 調試橋 (adb)廣播的終端,無需呼叫就緒設備即可撥打和接聽電話。
- 模擬通話。呼叫功能被嘲笑。這包括保持、靜音、合併和斷開連接。
使用 DTF
注意: DTF 僅適用於 Android 11 或更高版本。
要使用 DTF:
- 構建並安裝
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