如何为被测功能设置默认拨号器?

How to set Default Dialer for functions under test?

我从 https://developer.android.com/guide/topics/connectivity/telecom/selfManaged 了解到,您可以通过在清单中列出必要的项目和权限来设置默认拨号器。其中之一是拨号意图。

我想做的是构建一个库来执行所有这些内容提供程序调用,并为我的应用程序提供一种很好的反应方式。在构建库时,我想围绕这些设备调用添加一些集成测试。

GrantPermissionsRule 可帮助设置清单中已定义的权限,但如何处理成为默认拨号器或 SMS 应用程序?我什至接受你可以 运行 使用运行时执行命令的 adb 命令。

我还尝试在模拟器上进行测试,我注意到您可以为您的应用提供 WRITE_SECURE_SETTINGS 而不是 MANAGE_USERS,如果您要使用反射访问https://android.googlesource.com/platform/frameworks/base/+/master/telecomm/java/android/telecom/DefaultDialerManager.java

非常感谢任何帮助!

你可以试试 adb 命令:

adb shell settings put secure dialer_default_application com.google.android.dialer

用您的包裹替换 com.google.android.dialer。