从所有正在运行的应用程序获取PID(Android)

时间:2017-10-10 00:04:29

标签: android shell pid

我正在创建一个Android应用程序,该应用程序应该能够访问设备上运行的其他应用程序的PID(如Google地图,计算器等)。我每秒都运行以下代码来拉取Android设备上正在运行的进程。但是,当我运行它时,它只向我显示有关我的应用程序的信息,即使其他3个应用程序也在运行。有没有人对如何获取在Android设备上运行的其他应用程序的PID有任何建议?

try {
     Process process = Runtime.getRuntime().exec("ps");
     BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
     while(true) {
         String line = in.readLine();
         System.out.println(line);
         if ( line == null ) break;
     }
} 
catch (IOException e) {
      e.printStackTrace();
}

1 个答案:

答案 0 :(得分:0)

您可以使用活动管理器

获取它
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> pids = am.getRunningAppProcesses();
int processid = 0;
for (int i = 0; i < pids.size(); i++) {
    ActivityManager.RunningAppProcessInfo info = pids.get(i);
   System.out.println(info.pid);
}