gpt4 book ai didi

android - 我怎样才能检测到最喜欢的 Android 应用程序已启动?

转载 作者:行者123 更新时间:2023-11-30 03:11:20 24 4
gpt4 key购买 nike

我想实现一个可以检测启动了哪个应用程序的应用程序,然后用它做点什么!

例如,我在我的应用程序中有一个已安装应用程序的列表,并标记一个最喜欢的应用程序。当我从默认启动器或任何方式启动标记的应用程序时,我可以检测到它并通过后台服务或广播接收器对其执行某些操作(例如启动 toast 消息)。

我该怎么做?

最佳答案

这是不可能的.. 能够监控所有 Intent 会使 android 极度不安全

http://groups.google.com/group/andro...ddc9d36a24d77b

但是有一些方法可以知道应用程序何时启动。你只需要有创意。这将为您提供所有正在运行的应用程序的列表。

代码:

ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();

然而,要知道应用程序何时启动,您需要一个定时循环,然后在列表的版本之间进行检查以查看是否有新应用程序。这会吸汁而且无效

AppProtector 似乎访问事件日志。也许您可以将 ContentObserver 附加到事件日志 http://developer.android.com/referen.../EventLog.html http://developer.android.com/referen...tObserver.html

编辑

有趣。我也发现了这个可以解决你的问题。

当您从启动器中打开任何应用程序时,下面的代码将返回打开的应用程序的信息,因此现在您需要将包名称与您已存储在应用程序数据库中的最喜欢的应用程序包名称进行比较。

代码:

String str = ((ActivityManager.RunningTaskInfo)this.am.getRunningTasks(1).get(0)).topActivity.getPackageName();

关于android - 我怎样才能检测到最喜欢的 Android 应用程序已启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20920344/

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