撥號程式配備整合式偵錯和測試架構,可讓您驗證撥號程式應用程式功能,而不需要使用可進行通話的裝置。這樣一來,您就不需要使用藍牙,也不需要連上具備行動網路服務的手機。這個撥號測試架構 (DTF) 可簡化以下程序:
- 設定實體裝置來快速驗證構想通常會耗費時間。
- 如要測試多通話功能,至少需要三部裝有 SIM 卡的手機,其中兩部手機只用於撥打電話。
- 對撥號程式及其依附元件進行偵錯。
由於撥號應用程式的功能取決於多個技術堆疊,包括電信、電話和藍牙免持設定檔 (HFP),因此這些依附元件發生的錯誤和問題,可能會導致撥號應用程式不穩定。有了 DTF,Dialer 就能獨立於這些依附元件執行。
功能
DTF 提供下列功能:
- 通話刊登位置。透過終端機使用 Android Debug Bridge (adb) 廣播功能,不必使用可通話的裝置,即可撥打及接聽電話。
- 模擬電話。模擬呼叫功能。包括保留、靜音、合併和中斷。
使用 DTF
注意: DTF 僅適用於 Android 11 以上版本。
如何使用 DTF:
- 請依照下列方式建構及安裝
CarDialerAppForTesting
建構變數:cd %rRepoRoot%/packages/apps/Car/Dialer m CarDialerAppForTesting adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
因此,
CarDialerAppForTesting
會取代測試裝置上的原始撥號應用程式。CarDialerAppForTesting
無法在實際裝置上運作。如要使用實際裝置進行測試,請重新安裝CarDialerApp.apk
。
指令
下列 ADB 指令僅在撥號應用程式首次啟動後才有效,且需要初始化廣播接收器。啟動撥號程式後,必須連線至假的藍牙裝置。請使用下列 (Setup) Connect a device 指令。
(設定) 連結裝置
建立與撥號應用程式的假藍牙連線,且必須先呼叫此方法,才能啟用所有與通話相關的指令。
如要連結裝置,請按照下列步驟操作:
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 變更。在這種情況下,CarDialerAppEmulatorBuild
提供簡化的設定,但功能較為有限,不如功能更強大的 DTF。
測試資料
啟動撥號應用程式時,系統會略過藍牙錯誤頁面,並顯示 TelecomActivity
的主要內容。聯絡人和通話記錄會顯示在本機裝置上。開發人員可以使用原生聯絡人應用程式建立測試聯絡人,或匯入 .vcf
檔案。
模擬呼叫
如要模擬傳入呼叫,請使用 Android Emulator 傳送 Telnet 指令。詳情請參閱「在 Android Emulator 上執行應用程式」和「傳送模擬器主控台指令」。
telnet localhost 5554 gsm call xxx-xxx-xxxx
在撥號程式應用程式中撥打電話或廣播通話意圖,即可發起外撥通話。
adb shell am start -a android.intent.action.CALL tel:xxx-xxx-xxxx