2016-12-10 113 views
5

如何獲取Android中前臺活動的時間量。例如。如果今天1小時使用watsapp,那麼如何獲得watsapp以編程方式活動一小時。如何獲取Android上前臺活動的活動時間

+0

在'onStart()'方法中使用'Timer'。在'onStop()'中停止計時器並在某處保存時間。 –

回答

4

App usage statistics API允許應用開發者收集與應用使用相關的統計數據。此API提供比棄用的getRecentTasks()方法更詳細的使用信息。

要使用此API,您必須首先在清單中聲明android.permission.PACKAGE_USAGE_STATS權限。用戶還必須通過Settings > Security > Apps with usage access啓用此應用的訪問權限。

收集應用使用的統計數據,您需要通過下面的代碼首先得到的UsageStatsManager實例:

mUsageStatsManager = (UsageStatsManager) getActivity() 
     .getSystemService(Context.USAGE_STATS_SERVICE); 

然後你可以通過下面的方法來檢索應用使用的統計:

Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.YEAR, -1); 
List<UsageStats> queryUsageStats = mUsageStatsManager 
     .queryUsageStats(UsageStatsManager.INTERVAL_DAILY, cal.getTimeInMillis(), 
       System.currentTimeMillis()); 

queryUsageStats()的第一個參數用於彙總統計信息的時間間隔。第二個和第三個參數用於指定要包括在結果中的統計量範圍的開始和結束。

這是一個basic app code on GitHub,展示瞭如何使用應用程序使用情況統計信息API來讓用戶收集與應用程序使用情況相關的統計信息。

注:android.app.usage需要API級21以上。

+0

謝謝。這段代碼像一個魅力一樣工作。 – Aneez

3

Android有一個名爲「dumpsys」的內置工具。
它的大部分功能都是針對developers throw ADB,但出於您的目的,您應該深入研究UsageStatsManager,這將爲您提供有關其他應用程序所需的數據。

相關問題