从 apk 执行 adb shell input swipe 命令
execute adb shell input swipe command from apk
我正在尝试使用
从我的 Apk 执行滑动命令
process = Runtime.getRuntime().exec("adb shell input swipe 250 300
-800 300");
但在运行期间没有任何反应,也没有发生错误。
我是否必须在清单中添加任何内容才能使其正常工作?
您只能以root或shell[=执行/system/bin/input 21=] 用户;这在应用程序中不起作用。从应用程序 运行ning 时,命令不应以 "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
您需要在清单中添加 INJECT_EVENTS 权限:
uses-permission android:name="android.permission.INJECT_EVENTS"
我正在尝试使用
从我的 Apk 执行滑动命令process = Runtime.getRuntime().exec("adb shell input swipe 250 300 -800 300");
但在运行期间没有任何反应,也没有发生错误。
我是否必须在清单中添加任何内容才能使其正常工作?
您只能以root或shell[=执行/system/bin/input 21=] 用户;这在应用程序中不起作用。从应用程序 运行ning 时,命令不应以 "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
您需要在清单中添加 INJECT_EVENTS 权限:
uses-permission android:name="android.permission.INJECT_EVENTS"