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

标签 android process task

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

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

List<ActivityManager.RunningAppProcessInfo> listProcesses = manager.getRunningAppProcesses();

许多网站告诉我们使用

List<ActivityManager.RunningTaskInfo> alltasks = am.getRunningTasks(Integer.MAX_VALUE);

但也刚刚退回了我的申请

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

最佳答案

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

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

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

这里有更多详细信息:

How to use UsageStatsManager?

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

关于android - 为什么我无法以编程方式在 Android 中看到所有正在运行的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37974894/

相关文章:

c# - 将任务作为要在异步方法 C# 中的循环内调用的参数传递

Android:如何创建自定义按钮小部件

android - 如何配置 Tensorflow 对象检测 Android 演示以使用 Inception v2

android - 播放视频时无法关闭屏幕

python脚本进程stat停留在Sl上并停止运行

c# - 我如何判断 IOException 是否是由另一个进程使用该文件这一事实引起的?

java - Spring 云任务

android - 无法通过 Android Studio 启动应用程序(logcat [DEAD])

python - 检查子进程是否仍在运行,同时逐行读取其输出

android - 在每天的特定时间调用方法