我正在创建一个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();
}
答案 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);
}