0

我在 Android UIAutomator 项目中编写了一个方法并将相应的 jar 文件推送到 Android 设备。我使用以下命令从 adb shell 调用该方法“adb shell uiautomator runtest sample.jar -c com.practice.sample.Bluetooth#turnBluetoothOFF” .我遇到的问题是,它只能交替工作。即,第一次尝试它有效,第二次尝试失败,出现异常“无法注册 UiAutomationService”,第三次尝试它再次通过。

注意:上述内容在其他 Android 设备(三星 Galaxy S3 4.2.2、三星 Galaxy S4)中运行良好。我仅在三星 Galaxy S3 4.1.1 AT&T 手机中遇到此问题。

任何解决方法或解决方案都是必要的。

代码 :

// Returns Switch object of passed Text

公共 UiObject getSwitch(字符串文本)抛出 UiObjectNotFoundException {

return new UiScrollable(new UiSelector().scrollable(true))
.getChildByText(new UiSelector().className(LinearLayout.class.getName()),text, true).getChild(
new UiSelector().className(android.widget.Switch.class.getName()));

    }


public void turnBluetoothOFF() throws UiObjectNotFoundException {

    if (bluetoothStatus().matches("ON")) {
        getSwitch(getValue("BluetoothText")).click();
    }

我觉得与代码无关。因为相同的代码在所有设备中都可以正常工作。}

4

2 回答 2

0

4.1 是 API 级别 16。大多数与 UIObject 相关的 UIAutomator 函数(如 match() 等)都使用最低 API 级别 17。

于 2013-10-28T09:46:38.173 回答
0

只是一个建议:-

我在 API 16 中尝试了以下代码,它工作正常。

    public void disableBT( UiObject btSwitch) throws Exception {

    System.out.println("Disabling BT");
    if (btSwitch.getText().equals("ON"))
        btSwitch.click();       
}
于 2013-10-30T03:32:08.677 回答