【问题标题】:How to get package name of any app when it gets opened by user?用户打开任何应用程序时如何获取它的包名称?
【发布时间】:2018-01-03 18:15:55
【问题描述】:

当用户打开任何应用时,我需要获取其 包名称 或 应用名称。我对此进行了搜索,但没有找到合适的示例。

谁能给我这个案例的建议? 非常感谢!

【问题讨论】:

  • 试试this
  • 您的意思是在您的应用程序中吗?当有人打开其他应用程序时,它会存储在您的应用程序列表中吗?
  • 是的,我想问一下我是否可以收听广播或类似的东西,以及当应用程序打开时它会向我发送信息。谢谢

标签: android package tracking


【解决方案1】:

您必须为此创建后台服务,该服务将持续监控设备中的顶级应用程序。

所以首先创建一个服务,它会在你的应用启动后启动。在你的服务中,使用这个

ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
activityOnTop=ar.topActivity.getClassName();

activityOnTop 将为您提供手机中当前正在运行的应用程序。现在,在获得最高活动后做任何你想做的事情。

【讨论】:

  • 我也找到了相同的答案,但我想问一下是否有广播或类似的东西我可以收听,当应用程序打开时它会向我发送信息。谢谢
  • @TrungĐoan 你到底想做什么?
  • 我想知道用户打开任何应用程序时的包名称,据我所知,Android L 不推荐使用 RunningTaskInfo,而是可以使用 RunningAppProcessInfo。但是当我在三星设备中使用 RunningAppProcessInfo 时,它只能获取我的包名。
  • @TrungĐoan 这在答案中完全提到了。制作服务,在后台运行,将代码放入其中。你会得到你的包名
  • 我找到了一个帮助我解决这个问题的组件。我使用 AccessibilityService 来检测 WINDOW STATE CHANGED,它对我来说效果很好。感谢您的支持。
猜你喜欢
  • 1970-01-01
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-30
  • 1970-01-01
  • 2014-01-19
  • 2012-12-21
相关资源
最近更新 更多