如何找出应用程序(Whats App)的使用时间?

时间:2015-09-21 16:01:08

标签: android whatsapp usage-statistics

我一直在寻找一种方法来找出我花在Whatsapp上的时间。我在Playstore上找到了几个应用程序:

https://play.google.com/store/apps/details?id=com.agrvaibhav.AppUsageTracking&hl=en

这些应用程序的大小不到1MB,所以我猜它是一段相当简单的代码,但我找不到任何方法。

所有链接都提供了一种方式让我知道我自己的应用程序使用了多少,或者他们说这可能会侵犯隐私[奇异!]。

代码* # * # 7 8 6 # * # *应该可以工作,但每次尝试都会崩溃。

我努力搜索,无法在任何地方找到解决方案。我想到的一种可能的方法是运行跟踪所有打开的应用程序的服务 - 但我不确定这是否可以在Android中使用。

3 个答案:

答案 0 :(得分:6)

是的,Usage Stats API就是答案。 最初苦苦挣扎,但我终于成功了。

所需的许可是:

<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />

获取应用使用的代码:

 final UsageStatsManager usageStatsManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);// Context.USAGE_STATS_SERVICE);
            Calendar beginCal = Calendar.getInstance();
            beginCal.set(Calendar.DAY_OF_MONTH, 11);
            beginCal.set(Calendar.MONTH, 10);
            beginCal.set(Calendar.YEAR, 2015);

            Calendar endCal = Calendar.getInstance();
            endCal.set(Calendar.DAY_OF_MONTH, 12);
            endCal.set(Calendar.MONTH, 10);
            endCal.set(Calendar.YEAR, 2015);

final List<UsageStats> queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, beginCal.getTimeInMillis(), endCal.getTimeInMillis());
System.out.println("results for " + beginCal.getTime().toGMTString() + " - " + endCal.getTime().toGMTString());
for (UsageStats app : queryUsageStats) {
    System.out.println(app.getPackageName() + " | " + (float) (app.getTotalTimeInForeground() / 1000));
}

使用以下方式打开权限:

Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
startActivity(intent);

这个问题帮助我们全力以赴。 Android网站上更好的文档会有很大帮助。

以下是一些帮助我的链接:

https://github.com/googlesamples/android-AppUsageStatistics

How to use UsageStatsManager?

答案 1 :(得分:0)

Lollipop实际上是一个名为Usage Stats API的新API,它可以让应用程序准确跟踪您正在寻找的信息类型。

问题在于使用它需要一个权限,该权限只能由系统活动授予,而不能在清单中授予。文档指定系统活动可能不存在于所有设备上。三星和LG是众所周知的已从其构建中删除活动的制造商之一,因此只有系统应用程序才能在其设备上使用Usage Stats API。

答案 2 :(得分:0)

您会看到更多类似这样的应用程序,这些应用程序会整周检测您的应用程序使用情况。

Time Track -App Usage Tracker

但是,在使用此应用程序时,我发现它未运行任何后台服务(通过运行中的服务进行了检查)。因此,这必须使用“使用情况”统计信息,该统计信息实际上是android提供的内置机制,它本身每天,每月和每年都会跟踪您的移动活动。因此,您所需要做的就是使用此功能,获取所有数据并将其呈现给用户。

https://developer.android.com/reference/android/app/usage/UsageStatsManager#queryUsageStats(int,%20long,%20long)

在棒棒糖之前的设备中,您可能需要运行后台服务以保持跟踪用户活动。