m3325599 发表于 2022-11-1 14:49:53

ec使用java shell输入,只能在脚本ui界面输入,其他app不生效

这几天测试的时候发现了一个问题,有些app的搜索需要用输入法输入要给enter或者sreach才出现结果.

使用ec的话,大概率要使用代理模式或者把脚本设置成输入法才能实现.有没有不设置成输入法在无障碍就能实现输入keycode或者enter,sreach的办法呢?
受qtscrcpy启发,尝试通过java使用shell命令输入

m3325599 发表于 2022-11-1 14:53:05


function shell_java(commandArr) {//必要时手动把命令拆成数组确保稳定运行,如:cd到含特殊字符、空格的文件夹等。可以直接传命令字符串。

    let tempBuffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 1024);
    let byteArrayOutputStream = new java.io.ByteArrayOutputStream();
    // try {
    let exec = java.lang.Runtime.getRuntime().exec(commandArr);
    exec.getOutputStream().close();
    let inputStream = exec.getInputStream();
    let bufferedInputStream = new java.io.BufferedInputStream(inputStream);
    let count;
    while ((count = bufferedInputStream.read(tempBuffer)) !== -1) {
      byteArrayOutputStream.write(tempBuffer, 0, count);
    }
    bufferedInputStream.close();
    let retCode = exec.waitFor();
    //console.log(retCode);
    exec.destroy();
    // } catch (e) {
    //   console.error($debug.getStackTrace(e));
    // }
    return byteArrayOutputStream;
}

m3325599 发表于 2022-11-1 14:55:32

但是只在ec的ui上生效,在其他app界面上不生效.是权限问题吗?有哪位能指教下还有什么解决方案?谢谢

Mr_老冷 发表于 2022-11-1 15:20:03

ec不是带了keycode方法么

m3325599 发表于 2022-11-1 17:56:17

Mr_老冷 发表于 2022-11-1 15:20
ec不是带了keycode方法么

前提是 不设置输入法,不用代理模式呀

Mr_老鬼 发表于 2022-11-2 13:27:42

安卓系统版本高版本限制 必须设置默认输入法

m3325599 发表于 2022-11-2 20:35:09

Mr_老鬼 发表于 2022-11-2 13:27
安卓系统版本高版本限制 必须设置默认输入法

明白了 谢谢
页: [1]
查看完整版本: ec使用java shell输入,只能在脚本ui界面输入,其他app不生效