2016-04-17 21 views
0

我已经为我的移动设备生根,并且通过授予所需的权限将我的应用程序作为系统应用程序。如何在Android中从系统应用程序中杀死其他应用程序

activityManager.killBackgroundProcesses(packageName); 
android.os.Process.killProcess(pid); 

给予的权限:现在,我已经尝试使用

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> 
<uses-permission android:name="android.permission.GET_TASKS"/> 

我的应用程序仍然无法关闭其他应用程序。我试过关闭应用程序中的应用程序。上面的代码正在执行没有任何错误。虽然我的应用程序是一个系统应用程序(我也尝试过我的应用程序作为用户应用程序),但仍然Linux内核忽略了杀死其他应用程序的调用。

我知道从我们自己的应用程序中杀死其他应用程序并不好,但我想知道还需要做些什么来终止其他应用程序。

回答

1

请注意, android.os.Process.killProcess(pid); 允许系统根据其PID来请求终止任何进程,但内核仍然会对您实际能够杀死的PID施加标准限制。通常这意味着只有运行调用者的程序包/应用程序以及由该应用程序创建的任何其他进程的进程;

您可以尝试通过命令行杀第三方应用程序:

adb shell am force-stop com.my.app.package 

当然,你可以运行在Java也是这个命令。

+0

我已经使用下面的代码在java中运行该命令: public void RunAsRoot(String cmd){ Process p; try { \t p = Runtime.getRuntime()。exec(“su”); DataOutputStream os = new DataOutputStream(p.getOutputStream()); os.writeBytes(cmd); os.writeBytes(“exit \ n”); os.flush(); \t \t}赶上(例外五) \t \t { \t \t \t Log.d( “命令不运行”,e.getMessage()); Toast.makeText(这是“杀死应用程序时出错了”,Toast.LENGTH_LONG).show(); \t \t} } 它已执行,但仍显示当前正在运行的应用程序的代码显示相同的列表。 –

+0

没有异常提出说你没有权限杀死其他应用程序。 –

相关问题