Java 用pid实现Android上的Kill进程
我在stackoverflow周围发现了一些类似的问题,但我没有发现 在我的情况下有效的一个 到目前为止,我试过:Java 用pid实现Android上的Kill进程,java,android,linux,Java,Android,Linux,我在stackoverflow周围发现了一些类似的问题,但我没有发现 在我的情况下有效的一个 到目前为止,我试过: Runtime.getRuntime().exec(new String[]{"su","-c","kill -9 "+pid}); //am.killBackgroundProcesses(pkgName); //android.os.Process.killProcess(pid); 而如果我从adb输入su-c kill-9pid,它就工作了!为什
Runtime.getRuntime().exec(new String[]{"su","-c","kill -9 "+pid});
//am.killBackgroundProcesses(pkgName);
//android.os.Process.killProcess(pid);
而如果我从adb输入su-c kill-9pid
,它就工作了!为什么不以编程方式工作
我需要在AndroidManifest.xml
中添加任何权限吗
顺便说一句,这个设备已经扎根了。首先,用这种方式调用su
可能不是一个好主意。(pid的每一种变化都可能需要由管理您对su
调用的任何应用程序授权)大多数人调用sh
,然后编写他们想要执行的命令
我立即注意到的错误是,您的-9
需要位于阵列的不同部分。例如:
Runtime.getRuntime().exec(new String[]{"su", "-c", "kill", "-9", ""+pid});
编辑:实际上,这似乎应该是可行的。我忘记了-c
的参数必须是整个命令
您可以找到一些在Android上以root用户身份执行命令的示例代码
您可以做的另一件事是尝试指定su
和kill
二进制文件的完整路径。(这可能是特定于电话的,所以要小心)
编辑2:我想知道你是否遇到了。您使用的是哪一版本的Android?这一版本怎么样?有例外吗?您是否检查了adb logcat
?logcat没有提供任何相关信息