如何使用 javascript 通过 appium 打开 on/off 可访问性

How can I Turn on/off Accessibility through appium using javascript

我有这个用于 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

我可以通过以下方式在 java 中使用 adb 命令。希望对你也有帮助。

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();
}

您可以在 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 运行良好。

这对我有用。

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;
        }
});