从apk执行adb shell输入滑动命令

时间:2015-02-05 06:57:38

标签: android shell apk adb

我正在尝试使用

从我的Apk执行滑动命令
  

process = Runtime.getRuntime()。exec(" adb shell input swipe 250 300   -800 300");

但没有任何反应,运行期间也没有错误发生。

我是否必须在清单中添加任何内容才能使其正常工作?

2 个答案:

答案 0 :(得分:3)

您只能将 / system / bin / input 作为 root shell 用户执行;这不适用于应用程序。从应用程序运行时,该命令不应以“adb shell”开头。

以root身份运行命令:

Process su = null; 
try { 
    su = Runtime.getRuntime().exec("su");
    su.getOutputStream().write("input swipe 250 300 -800 300\n".getBytes());
    su.getOutputStream().write("exit\n".getBytes());
    su.waitFor(); 
} catch (Exception e) {
    e.printStackTrace();
} finally { 
    if (su != null) { 
        su.destroy(); 
    } 
}

您还应该检查第三方库以处理su命令:https://android-arsenal.com/details/1/451

答案 1 :(得分:1)

您需要在清单中输入INJECT_EVENTS权限:



uses-permission android:name="android.permission.INJECT_EVENTS"