【问题标题】:Android 6.0.1 uiautomator SyncException: Remote object doesn't exist! during incall screenAndroid 6.0.1 uiautomator SyncException:远程对象不存在!在通话屏幕期间
【发布时间】:2017-01-09 08:17:49
【问题描述】:

目标:我想在 android 6.0.1 设备中使用 android uiautomator 自动化呼叫相关场景。但无法在调用屏幕中获取 UI 层次结构(静音、Spearker On、键盘、Addcall 等)

注意:我没有使用任何appium服务器

错误:“获取 UI 层次结构时出错”原因:获取 UI 时出错 层次结构 XML 文件:com.android.ddmlib.SyncException:远程对象 不存在!

观察:

  1. adb devices 正在列出设备,我们可以访问 /data/local/tmp/ 目录
  2. 重启设备,重启电脑,重启uiautomatorviewer
  3. adb shell input tap x y 正在工作(但不想在脚本文件中使用坐标)

请协助寻找解决方案,以自动执行电话应用程序调用场景,例如“静音”、“取消静音”、“dtmf 按键盘数字”、“扬声器打开”、“扬声器关闭”。

有没有办法通过 adb 来执行这些操作?

【问题讨论】:

标签: android adb android-uiautomator uiautomatorviewer


【解决方案1】:

您可以简单地调用 adb 命令来调用调用者服务。

要从 ADB 拨打(而不是呼叫)号码,请运行以下 ADB shell 命令:

$ adb shell service call phone 1 s16 "9302939203"
Result: Parcel(00000000    '....')

要从 ADB 调用,我们只需要更改调用服务命令的方式:

$ adb shell service call phone 2 s16 "1" s16 "9302939203"
Result: Parcel(00000000    '....')

还有一个替代命令可以从 ADB 拨打电话:

$ adb shell am start -a android.intent.action.CALL -d tel:9302939203
Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxxxx }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 2020-06-11
    相关资源
    最近更新 更多