Dialer 配备了集成的调试和测试框架,使您能够验证 Dialer 应用程序功能,而无需呼叫就绪设备。这消除了对蓝牙和具有蜂窝服务的连接电话的需求。此拨号器测试框架 (DTF) 简化了这些过程:
- 设置真实设备来快速验证想法通常会消耗时间。
- 测试多通话功能需要至少三部配备 SIM 卡的手机,其中两部仅用于拨打电话。
- 调试拨号器及其依赖项。
由于 Dialer 的功能依赖于多种技术堆栈,包括电信、电话和蓝牙免提配置文件 (HFP),因此这些依赖项中出现的错误和问题可能会导致 Dialer 不稳定。 DTF 使 Dialer 能够独立于这些依赖项运行。
特征
DTF 提供以下功能:
- 呼叫安置。通过带有Android 调试桥 (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
取代了测试设备上的原始 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