android - 如何检测用户何时启动另一个应用程序? (安卓)

标签 android service

我正在尝试构建一个应用程序,我的应用程序在后台运行并检测用户何时启动另一个应用程序,以便我可以控制其上的流程。 为了说明我的查询,我想指定一个示例。 我的应用程序在后台运行(比如作为服务),用户刚刚单击了应用程序“XYZ”。我的应用程序是否可以检测到应用程序“XYZ”已启动? 不仅仅是检测'XYZ's Activity 是否已经进入前台,我还想检测'XYZ'是否已经启动。假设有人启动了“Whatsapp Messenger”,我想知道我的应用程序是否可以知道“Whatsapp Messenger”已经启动。

编辑:很多人认为我在尝试构建恶意软件,但我不是。我正在尝试为一个高中项目构建一个应用程序。我想要一个统计数据来了解我在心理项目中使用相机的频率。 :/

提前致谢, 提交。

最佳答案

是的,您可以通过跟踪 Logcat 找到启动了哪个应用程序。只需使用 info -I 日志跟踪 ActivityManager 标签。

来自 adb shell 命令是,

adb logcat ActivityManager:I *:S

从您的应用程序代码,

logcat ActivityManager:I *:S

在 Logcat 中你可以找到类似这样的一行

I/ActivityManager(  585): Starting activity: Intent { action=android.intent.action...}

任何应用程序何时启动。

logcat 输出显示消息与优先级“I”和标签“ActivityManager”相关:

更新:

只需在应用程序的 list 文件中添加权限,

android.permission.READ_LOGS

关于android - 如何检测用户何时启动另一个应用程序? (安卓),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11346557/

相关文章:

java - 使用 setContentUrl() 从 Android 在 Facebook 上共享

java - 我是否需要为 java 中的一个函数创建单独的服务类

android - 使用 Otto 从 GcmListenerService 刷新列表适配器

android - 如何在 Android Studio 中调试 C++ 代码?

android - handler.post(runnable) 并不总是执行android中的run方法

android - 要求解锁图案 - Android

Windows 服务设置项目 - 以管理员身份运行服务

Android List<T> 等价物

c++ - 无法使用mysql++连接到SQL数据库

javascript - Node.js 在服务中使用 res 和 req