我在Android UIAutomator项目中编写了一个方法,并将相应的jar文件推送到Android设备。我使用以下命令从adb shell调用该方法“adb shell uiautomator runtest sample.jar -c com.practice.sample.Bluetooth #turnBluetoothOFF“。我遇到的问题是,它只能交替工作。对于第一次尝试,它可以正常工作,第二次尝试失败,出现异常”Cound not register UiAutomationService“,第三次尝试再次通过。
注意: 以上的东西在其他Android设备(三星Galaxy S3 4.2.2,三星Galaxy S4)中运行良好。我只在三星Galaxy S3 4.1.1 AT& T手机中遇到此问题。
任何解决方案或解决方案都是必要的。
代码:
// Returns Switch object of passed Text
public UiObject getSwitch(String text)抛出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();
}
我觉得这与代码无关。因为相同的代码在所有设备中都能正常工作。 }
答案 0 :(得分:0)
4.1是API级别16。 大多数UIAutomator函数(如与UIObject相关的match()等函数都与min API级别17一起工作。
答案 1 :(得分:0)
只是一个建议: -
我在API 16中尝试了下面的代码,它运行正常。
public void disableBT( UiObject btSwitch) throws Exception {
System.out.println("Disabling BT");
if (btSwitch.getText().equals("ON"))
btSwitch.click();
}