安卓应用使用监控是如何工作的?

3
我想写一个应用程序来记录手机上其他应用程序的使用情况。例如,我能够得到我登录Facebook的次数。
我知道没有办法让广播接收器每次Facebook启动时都能唤醒。另一种方法是运行一个始终在后台运行的服务,检查正在运行的应用程序并每秒钟进入睡眠状态,但我猜这会更快地耗尽我的电池。
那么最好的方式是什么?是否有某种日志可以查看?
1个回答

2

监控其他应用程序的唯一方法是通过监控前台活动。这将耗费您的电池电量,但是当其他应用程序启动时没有广播,因此没有其他方法可以做到这一点。您想启动一个定时器任务来检查当前的前台活动。我强烈建议不要这样做。

要获取当前的前台活动,请使用以下代码:

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1); 
Log.d("topActivity", "CURRENT Activity ::"
            + taskInfo.get(0).topActivity.getClassName());
ComponentName componentInfo = taskInfo.get(0).topActivity;
componentInfo.getPackageName();

您需要以下权限:

<uses-permission android:name="android.permission.GET_TASKS"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接