如何以编程方式获取当前在Android的最新堆栈中的应用程序的名称?

时间:2017-08-31 22:23:10

标签: android android-recents

我需要一些代码来获取一个对象或一个arraylist,其中包含当前位于android 的最新堆栈中的那些应用程序的所有名称。也许android不允许这样做(出于安全考虑),所以即使是需要root权限的代码也适合我。

2 个答案:

答案 0 :(得分:1)

解决方案1:

使用getRunningAppProcesses,它将返回RunningAppProcessInfo个对象列表,这些对象将为您提供有关每个正在运行的应用的一些数据。您可以检索有关该应用的其中一条信息是importance,其值IMPORTANCE_FOREGROUND表示该流程是当前有效的。

一些指南也适合你。

IMPORTANCE_FOREGROUND

RunningAppProcessInfo

解决方案2: 我还在开发一个锁定应用程序的应用程序。您似乎需要让用户提供此设置。我用这个活动来检查哪个应用程序在前台,但我猜它也可以根据你的工作。

Settings.ACTION_USAGE_ACCESS_SETTINGS

在我的手机上写了

  

允许应用监控您使用的其他应用以及频率,以及   识别您的服务提供商,语言和其他使用数据。

UsageStatsManager有一些有用的方法可以满足您的需求。

我认为您需要向用户询问此问题以及用户是否同意。您可以使用获取权访问最近的应用程序。

答案 1 :(得分:-1)

我环顾四周,你的问题可以在这里得到解答:
How to get App info from RecentTaskInfo? 它基于ActivityManager.RecentTaskInfo