为什么我无法以编程方式在 Android 中看到所有正在运行的应用程序?

Gor*_*rio 5 android process task

我试图列出所有正在运行的应用程序,但我不知道为什么我不能这样做。

当我尝试运行以下命令时,我只返回了我的应用程序。

List<ActivityManager.RunningAppProcessInfo> listProcesses = manager.getRunningAppProcesses();
Run Code Online (Sandbox Code Playgroud)

许多网站告诉使用

List<ActivityManager.RunningTaskInfo> alltasks = am.getRunningTasks(Integer.MAX_VALUE);
Run Code Online (Sandbox Code Playgroud)

但也刚退回了我的申请

没有 root 有什么可以让所有任务/进程运行的吗?

小智 3

如前所述,从 Android 5 (Lollipop) 开始不再支持 getRunningTasks 和 getRunningAppProcesses

对于较新的Android版本,您需要请求用户授予您AppsUsage权限,然后向UsageStatsManager询问在特定时间段内运行的应用程序。

https://developer.android.com/reference/android/app/usage/UsageStatsManager.html

您可以在这里了解更多详细信息:

如何使用UsageStatsManager?

以下是有关如何查询UsageStatsManager的示例(归功于Cole Murray - 在上一个链接中发布) - https://github.com/ColeMurray/UsageStatsSample