有没有办法在Android中获取其他第三方应用程序的进程ID?

时间:2011-08-11 06:23:02

标签: android process

我的项目中有一个要求,我必须杀死第三方应用程序。

据我所知,Android可以同时运行多个应用程序,因此我可以获得所有这些进程

Ids一些如何...

3 个答案:

答案 0 :(得分:1)

此课程将帮助您杀死进程:
http://developer.android.com/reference/android/os/Process.html

这为您提供了当前正在运行的进程列表:

ActivityManager.getRunningAppProcesses();

该列表包含存储pid的 ActivityManager.RunningAppProcessInfo 对象。然后,您可以通过

终止进程
Process.killProcess(pid);

您需要适当的权限才能执行此操作。如果您尝试在没有适当权限的情况下终止进程并且告诉您需要什么权限,Android应该抛出异常。

答案 1 :(得分:0)

如果它能解决你的目的,请以这种方式检查:

 ArrayList<PackageInfo> res = new ArrayList<PackageInfo>();
            PackageManager pm = context.getApplicationContext().getPackageManager();
            List<PackageInfo> packs = pm.getInstalledPackages(0);
            packs.get(pos).gids;
            packs.get(pos).sharedUserId;

答案 2 :(得分:0)

您可以使用ActivityManager获取有关所有正在运行的进程的信息。请参阅以下代码:

    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> list = am.getRunningAppProcesses();
    for (RunningAppProcessInfo proc : list) {
        Log.v("Proccess", proc.processName + " : " + proc.pid);
    }

多个应用程序可以在同一个过程中运行,因此最好使用RunninAppProcessInfo.pkgList而不是RunninAppProcessInfo.processName