0

我发现了一些关于 stackoverflow 的类似问题,但我还没有找到适合我的问题。

到目前为止,我尝试过:

    Runtime.getRuntime().exec(new String[]{"su","-c","kill -9 "+pid});
    //am.killBackgroundProcesses(pkgName);
    //android.os.Process.killProcess(pid); 

如果我su -c kill -9 pidadb输入,它会起作用!为什么不以编程方式工作?

我需要放任何东西permissionAndroidManifest.xml

顺便说一句,该设备已植根。

4

1 回答 1

1

一方面,su以这种方式调用可能不是一个好主意。(pid 的每个变体都可能需要由管理您调用的任何应用程序授权su)大多数人调用sh然后编写他们想要执行的命令。

我立即注意到的错误是您-9需要位于数组的不同部分。例如:

Runtime.getRuntime().exec(new String[]{"su", "-c", "kill", "-9", ""+pid});

编辑:实际上,这似乎应该可行。我忘记了参数-c必须是整个命令。

您可以在此处找到一些示例代码,用于在 Android 上以 root 身份执行命令。

您可以做的另一件事是尝试指定sukill二进制文件的完整路径。(可能是特定于手机的,所以要小心)

编辑2:我想知道你是否遇到了这个问题。你用的是什么版本的安卓?

于 2013-05-24T23:32:13.817 回答