当我尝试运行以下
时 process = Runtime.getRuntime().exec("input touchscreen swipe 100 1000 300 1000 1000"); //Normal swipe
它有效。
但是,当我按照以下方式使用它时,它无法正常工作
String[] inputs = {"adb", "shell", "input touchscreen swipe 500 1000 600 1000 1000"};
Process p = Runtime.getRuntime().exec(inputs);
p.waitFor();
我想要运行另一个命令,并且要运行它,我必须使用第二种方法。有人可以告诉我是什么原因或如何让第二个运行?
答案 0 :(得分:0)
Process p = Runtime.getRuntime().exec(inputs);
引发了一些例外,包括但不限于IO,Null Pointer,Index Out of Bound。
尝试使用try catch
包围该行Process p;
try {
p = Runtime.getRuntime().exec(ch);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 1 :(得分:0)
您应该粘贴错误是什么(如果存在)。 (例如,在logcat中。)
adb
是您的Android设备中可能不存在的客户端(自Android 5.0以来)。您不应在Android App命令中使用它。对于您的示例,您可以直接使用input
命令而不使用adb
。
另外,
process = Runtime.getRuntime().exec("input touchscreen swipe 100 1000 300 1000 1000");
相当于
String[] inputs = {"input", "touchscreen", "swipe", "100", "1000", "300", "1000", "1000"};
process = Runtime.getRuntime().exec(inputs);
。
请注意问题中inputs
中前两个元素的删除。
答案 2 :(得分:0)
正如@Geno Chen所提到的,参数需要配双引号。
setTimeout(() => {
for (let i = 0; i < 10; i++) {
this.iData.push( this.iData.length );
}
console.log('Async operation has ended');
infiniteScroll.complete();
}, 500);
必须删除String[] inputs = {"input", "touchscreen", "swipe", "100", "1000", "300", "1000", "1000"};
才能使其正常运行。