android监控应用程序是如何工作的
我想编写一个应用程序,记录手机上其他应用程序的使用情况。android监控应用程序是如何工作的,android,monitor,usage-statistics,Android,Monitor,Usage Statistics,我想编写一个应用程序,记录手机上其他应用程序的使用情况。 例如,我得到了我进入Facebook的次数 我知道没有办法让广播接收器在每次Facebook启动时都醒来。 另一种方法是让服务总是在后台运行,检查正在运行的应用程序,然后每隔一秒钟左右就进入睡眠状态,但我想这会让我的电池消耗得更快 那么,最好的办法是什么呢?有什么日志我可以看一下吗 监视其他应用程序的唯一方法是监视前台活动。这将耗尽你的电池,但当其他应用程序启动时,不会有广播,因此没有其他方法可以做到这一点。您想启动一个计时器任务来检查当
例如,我得到了我进入Facebook的次数 我知道没有办法让广播接收器在每次Facebook启动时都醒来。 另一种方法是让服务总是在后台运行,检查正在运行的应用程序,然后每隔一秒钟左右就进入睡眠状态,但我想这会让我的电池消耗得更快
那么,最好的办法是什么呢?有什么日志我可以看一下吗 监视其他应用程序的唯一方法是监视前台活动。这将耗尽你的电池,但当其他应用程序启动时,不会有广播,因此没有其他方法可以做到这一点。您想启动一个计时器任务来检查当前的前台活动。我强烈建议不要这样做。 要获取当前前台活动,请使用以下代码:
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();
ActivityManager am=(ActivityManager)this.getSystemService(ACTIVITY_服务);
列表taskInfo=am.getRunningTasks(1);
Log.d(“topActivity”,“当前活动:”
+taskInfo.get(0.topActivity.getClassName());
ComponentName componentInfo=taskInfo.get(0).topActivity;
getPackageName();
您将需要以下权限:
<uses-permission android:name="android.permission.GET_TASKS"/>