检测机器人活动启动(Detecting android Activity launches)

2019-08-31 07:41发布

我已经搜查了计算器的这个问题,并发现: Android的,检测时其他应用启动和可靠的方式来检测来自家庭/桌面应用程序启动? ,哪一种回答我的问题,但它仍然是不够的。

我想这样做 ,我想创建一个小部件/应用程序,显示设备的用户最近使用的应用列表和最常用的应用程序的列表。

问题我怎么能为了打造最常用的应用程序的列表有关的应用程序的准确数据。

基本信息

  • 我编译我自己的Android操作系统(4.2型)的代码,所以我获得的一切。
  • 我正在开发的启动,以及。
  • 它需要通过CTS和是谷歌的批准。
  • 我可以以系统权限的应用程序。
  • 我知道,这可能是谷歌的安全问题。

一些解决方案

最近的应用程序可以通过ActityManager,getRecentApps方法在那里找到,所以现在的问题。

我已经在网上搜索,这和已经找到了以下解决方案:

  1. 使用服务来查询activityManager,getRunningTasks方法每X秒,并建立列表(innacurate信息,还使用了大量batery的)。
  2. 使用logcat中获取此信息(似乎是一个黑客对我来说,需要系统权限)
  3. 更改activityManager本身,以提供该信息(很可能会失败的CTS测试)
  4. 使用发射器来验证共推出了应用程序(错过其他应用程序内推出的应用程序)

什么我错过了什么?

在此先感谢,蒂亚戈科斯塔

Answer 1:

Android的默认最近使用的应用对话框实现是你最好的参考, 看看here..check reloadButtons()

final ActivityManager am = (ActivityManager)
                context.getSystemService(Context.ACTIVITY_SERVICE);
        final List<ActivityManager.RecentTaskInfo> recentTasks =
                am.getRecentTasks(MAX_RECENT_TASKS, ActivityManager.RECENT_IGNORE_UNAVAILABLE);

您可以尝试类似的方式..



文章来源: Detecting android Activity launches