2016-12-10 22 views
5

Androidでフォアグラウンドに参加した時間を取得する方法。例: watsappが今日1時間使用された場合、そのwatsappを取得する方法はプログラム的に1時間有効でした。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()の最初の引数は、統計情報が集計される時間間隔に使用されます。 2番目と3番目の引数は、結果に含める統計の範囲の開始と終了を指定するために使用されます。

ここでは、アプリケーション使用統計APIを使用してアプリケーションの使用に関する統計情報を収集する方法を示すbasic app code on GitHubがあります。

注:android.app.usageAPIレベル21以上を必要としました。

+0

ありがとうございます。このコードは魅力的に機能しました。 – Aneez

3

Androidには、「dumpsys」という名前のツールが組み込まれています。
ほとんどの機能はdevelopers throw ADBですが、目的に合わせて他のアプリについて必要なデータを提供するUsageStatsManagerを掘り下げてください。

関連する問題