2013-07-13 28 views
2

我想編寫一個應用程序,記錄我手機上其他應用程序的使用情況。
因此,例如我得到了我進入Facebook的時間。Android監視器使用應用程序如何工作

我知道每次Facebook啓動時都無法讓廣播接收器喚醒。 另一種方式是讓服務始終在後臺運行,並檢查正在運行的應用程序,並且每秒鐘都進入睡眠狀態,但我想這會讓我的電池更快耗盡。

那麼這可以做到最好的方式是什麼?有什麼我可以看的日誌?

回答

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"/> 
相關問題