如何在Android上获取活动在前台活动的时间

问题描述 投票:5回答:2

如何在Android中获取活动在前台的时间量。对于Ex。如果今天使用WhatsApp 1小时,如何以编程方式让WhatsApp活跃一小时。

android android-activity foreground usage-statistics
2个回答
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,展示了如何使用App使用统计API让用户收集与应用程序使用情况相关的统计信息。

注意:android.app.usage要求API等级21或以上。


3
投票

Android有一个名为“dumpsys”的内置工具。 它的大多数功能都适用于developers throw ADB,但出于您的目的,您应该深入了解UsageStatsManager,它将为您提供有关其他应用程序所需的数据。

© www.soinside.com 2019 - 2024. All rights reserved.