我需要一些代码来获取一个对象或一个arraylist,其中包含当前位于android 的最新堆栈中的那些应用程序的所有名称。也许android不允许这样做(出于安全考虑),所以即使是需要root权限的代码也适合我。
答案 0 :(得分:1)
解决方案1:
使用getRunningAppProcesses
,它将返回RunningAppProcessInfo
个对象列表,这些对象将为您提供有关每个正在运行的应用的一些数据。您可以检索有关该应用的其中一条信息是importance
,其值IMPORTANCE_FOREGROUND
表示该流程是当前有效的。
一些指南也适合你。
解决方案2: 我还在开发一个锁定应用程序的应用程序。您似乎需要让用户提供此设置。我用这个活动来检查哪个应用程序在前台,但我猜它也可以根据你的工作。
Settings.ACTION_USAGE_ACCESS_SETTINGS
在我的手机上写了
允许应用监控您使用的其他应用以及频率,以及 识别您的服务提供商,语言和其他使用数据。
UsageStatsManager
有一些有用的方法可以满足您的需求。
我认为您需要向用户询问此问题以及用户是否同意。您可以使用获取权访问最近的应用程序。
答案 1 :(得分:-1)
我环顾四周,你的问题可以在这里得到解答:
How to get App info from RecentTaskInfo?
它基于ActivityManager.RecentTaskInfo