Есть ли способ получить идентификаторы процессов других сторонних приложений в Android ...? - PullRequest
1 голос
/ 11 августа 2011

У меня есть требование в моем проекте, где я должен убить процесс стороннего приложения.

Как я знаю, в Android может быть запущено несколько приложений одновременно, поэтому я могу получить все эти процессы

Ids кое-как ...

Ответы [ 3 ]

1 голос
/ 11 августа 2011

Этот класс поможет вам убить процессы:http://developer.android.com/reference/android/os/Process.html

Это дает вам список запущенных в данный момент процессов:

ActivityManager.getRunningAppProcesses();

Список содержит ActivityManager.RunningAppProcessInfo объекты, которые хранят pid.Затем вы можете убить процессы с помощью

Process.killProcess(pid);

. Для этого вам нужны соответствующие разрешения.Android должен выдать исключение, если вы пытаетесь завершить процесс без надлежащих разрешений и сообщить вам, какое разрешение вам нужно.

0 голосов
/ 11 августа 2011

Вы можете получить информацию обо всех запущенных процессах, используя 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.

0 голосов
/ 11 августа 2011

отметьте этот способ, если он решает вашу задачу:

 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...