我已经搜索了此问题的计算器,发现: Android, Detect when other apps are launched和 Reliable way to detect application launch from home/desktop?,哪种回答我的问题,但它仍然不够。检测android活动启动
我想做 我想创建一个小部件/应用程序,显示设备的用户最近使用的应用列表和最常用的应用程序列表什么。
问题 如何获得有关应用程序的准确数据以构建最常用的应用程序列表。
基本信息
- 我编译我自己的Android操作系统(4.2型)代码,所以我有机会获得 一切。
- 我也在开发启动器。
- 它需要通过CTS并获得Google批准。
- 我可以使系统权限的应用程序。
- 我知道这可能是Google的安全问题。
一些解决方案
最近的应用程序可以通过ActityManager,getRecentApps方法在那里找到,所以现在的问题。
我已经在网上搜索了这一点,并已经找到了以下解决方案:
- 使用服务来查询activityManager,getRunningTasks方法每X秒,并建立列表(innacurate信息,还使用了大量的batery)。
- 使用logcat中获取此信息(似乎是一个黑客对我来说,需要系统权限)
- 更改activityManager本身,以提供该信息(很可能会失败的CTS测试)
- 使用启动验证已启动的应用程序(错过了在其他应用程序内启动的应用程序)
还有其他的东西我错过了吗?
由于提前, 蒂亚戈科斯塔
你漂亮与列出所有4个选项相当。我最喜欢的一个是使用'(ActivityManager)this.getSystemService(ACTIVITY_SERVICE);' – srf
谢谢你的答案,我将尝试所有这些,看看哪一个最好。再次感谢。 –
logcat不适用于Android 4。2和更高版本,除非你有root权限,请参阅https://groups.google.com/forum/?fromgroups=#!topic/android-developers/6U4A5irWang – mattlaabs