gpt4 book ai didi

java - 检测 android Activity 启动

转载 作者:搜寻专家 更新时间:2023-10-30 21:34:58 27 4
gpt4 key购买 nike

我在 stackoverflow 上搜索了这个问题,发现: Android, Detect when other apps are launchedReliable way to detect application launch from home / desktop? , 哪一种回答了我的问题,但仍然不够。

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

问题我如何才能获得有关应用的准确数据,以便构建最常用应用的列表。

基础信息

  • 我正在编译自己的 Android 操作系统(基于 4.2)代码,因此我可以访问一切。
  • 我也在开发启动器。
  • 它需要通过 CTS 并获得 Google 批准。
  • 我可以制作具有系统权限的应用。
  • 我知道这可能是 Google 的安全问题。

一些解决方案

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

我已经在网上搜索了这个并且已经找到了以下解决方案:

  1. 使用服务每 X 秒查询一次 activityManager、getRunningTasks 方法并构建列表(不准确的信息,也使用大量电池)。
  2. 使用 logcat 获取此信息(对我来说似乎是 hack,需要系统权限)
  3. 更改 activityManager 本身以提供此信息(很可能会导致 CTS 测试失败)
  4. 使用启动器验证已启动的应用(遗漏在其他应用内启动的应用)

我还遗漏了什么吗?

提前致谢,蒂亚戈·科斯塔

最佳答案

Android 默认的最近应用程序对话框实现是您最好的引用, look 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);

你可以用类似的方式尝试..

关于java - 检测 android Activity 启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16034801/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com