Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android监控应用程序是如何工作的_Android_Monitor_Usage Statistics - Fatal编程技术网

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"/>