如何使用javascript通过appium打开/关闭辅助功能

时间:2018-11-26 11:38:14

标签: javascript appium accessibility appium-android talkback

我有这个用于Android的adb shell命令,并在终端上进行了尝试,并且运行良好。

但不确定如何使用appium命令在框架中使用它。

// disable
adb shell settings put secure enabled_accessibility_services com.android.talkback/com.google.android.marvin.talkback.TalkBackService

// enable
adb shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/com.google.android.marvin.talkback.TalkBackService

3 个答案:

答案 0 :(得分:1)

我可以通过以下方式在Java中使用abd命令。希望它也能帮助您。

String disable= "adb shell settings put secure enabled_accessibility_services com.android.talkback/com.google.android.marvin.talkback.TalkBackService"
String enable = "adb shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/com.google.android.marvin.talkback.TalkBackService"
try{
       Runtime.getRuntime().exec(disable); //to disable
   //    Runtime.getRuntime().exec(enable);  //to enable
}catch(Exception e){
      e.printStackTrace();
}

答案 1 :(得分:0)

您可以在Appium中使用mobile:shell来执行 ADB命令

您必须使用安全密钥启动Appium服务器: appium --relaxed-security

然后您这样做:

List<String> args = Arrays.asList(
   arg1,
   arg2,
   ...
   argN
);
Map<String, Object> yourCmd = ImmutableMap.of(
    "command", <adbCommand>,
    "args", args
);
driver.executeScript("mobile: shell", yourCmd);

我不确定settings put的操作,但是pull / push / rm的使用效果很好。

答案 2 :(得分:0)

这对我有用。

const { exec } = require('child_process');

exec('adb shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/com.google.android.marvin.talkback.TalkBackService', (err, stdout, stderr) => {
        if (err) {
          return;
        }
});