调试和测试

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