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

标签 android android-activity android-launcher

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

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

相关文章:

java - 安卓 ||按钮配置||返回 Intent

android - 重启单个任务 Activity

android - 强制 android 使用方形启动器图标

android - 获取已安装应用程序的列表,很简单。但是如何启动其中之一呢?

Android水平 ScrollView 不滚动

android - 如何防止 JobService 使用的 AsyncTask 中的上下文泄漏

javascript - 使用 javascript 将 Android WebView 滚动到下一页

android - Android Studio:Gradle项目同步失败

java - 如何在 Android webview 中检测到 url 时更改 Activity

java - 在启动器中创建第二个快捷方式