Android M5.1.1 如何获取运行任务的包名
How to get packagename of runningtask on Android M5.1.1
我是 Android 的新手,我正在尝试制作一个允许用户查看哪些应用程序是 运行 的项目。我使用此代码在顶部获取 运行 任务的包名:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
List<ActivityManager.RunningAppProcessInfo> runningappInfo = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo app : runningappInfo) {
if (app.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && app.importanceReasonCode == 0) {
Integer state = null;
try {
state = field.getInt(app);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
if (state != null && state == PROCESS_STATE_TOP) {
currentInfo = app;
break;
}
}
}
if (currentInfo != null) {
current = currentInfo.processName.split(":")[0];
}
}else{
List<ActivityManager.RunningTaskInfo> runningTaskInfos = activityManager.getRunningTasks(1);
ComponentName componentInfo = runningTaskInfos.get(0).topActivity;
current = componentInfo.getPackageName();
}
current
这里是 运行 任务的包名。但是在 Google 更新新的 android 版本 Lollipop5.1.1 后,这段代码不再有效。方法 "getRunningAppProcesses" 现在 returns 一个空列表。
我现在卡住了,因为我的项目中的所有其他功能只有在我可以获得 运行 任务的包名时才能工作。如果有人解决了这类问题,你能帮帮我吗?
非常感谢,
我是 Android 的新手,我正在尝试制作一个允许用户查看哪些应用程序是 运行 的项目。我使用此代码在顶部获取 运行 任务的包名:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { List<ActivityManager.RunningAppProcessInfo> runningappInfo = activityManager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo app : runningappInfo) { if (app.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && app.importanceReasonCode == 0) { Integer state = null; try { state = field.getInt(app); } catch (IllegalAccessException e) { e.printStackTrace(); } if (state != null && state == PROCESS_STATE_TOP) { currentInfo = app; break; } } } if (currentInfo != null) { current = currentInfo.processName.split(":")[0]; } }else{ List<ActivityManager.RunningTaskInfo> runningTaskInfos = activityManager.getRunningTasks(1); ComponentName componentInfo = runningTaskInfos.get(0).topActivity; current = componentInfo.getPackageName(); }
current
这里是 运行 任务的包名。但是在 Google 更新新的 android 版本 Lollipop5.1.1 后,这段代码不再有效。方法 "getRunningAppProcesses" 现在 returns 一个空列表。
我现在卡住了,因为我的项目中的所有其他功能只有在我可以获得 运行 任务的包名时才能工作。如果有人解决了这类问题,你能帮帮我吗?
非常感谢,