2016-12-10 114 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,这将为您提供有关其他应用程序所需的数据。

相关问题