问题标签 [usagestatsmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
393 浏览

android - AndroidTV:UsageStatsManager 在重新启动后不返回应用结果的详细信息

我正在开发一个 Android TV 应用程序(系统应用程序),我正在尝试使用UsageStatsManager来获取最近使用的应用程序列表。
通过以下方法,

上述方法提供了正确的使用数据,但在设备重新启动后,它不会提供以前使用的应用程序使用数据,直到重新启动后再次打开该应用程序。

但是相同的代码在 android Phone 中可以正常工作(重启后)。

我还在 Android TV 中尝试了来自 Github 的这个示例应用程序,它在 Android TV 中重新启动后也无法提供详细信息(但适用于 Mobile ,两个操作系统版本 8)。

为什么它无法获取 Android TV 的应用程序使用数据?

TIA

0 投票
1 回答
105 浏览

android - 如何检测应用程序前台时间?

如何找到在前台使用的android应用程序的花费时间。我使用了 UsageStatsManager,但它不返回包列表。
此链接中使用的示例代码

0 投票
1 回答
109 浏览

android - queryEvents 调用不返回任何内容

如果这是一个重复的帖子,我很抱歉,但我已经查看了几个问题,但似乎没有一个对我有帮助。所以,我试图调用 queryEvents() 但我什么也没得到。我在这里附上我的代码,如果有人能指出我所缺少的,将不胜感激。它永远不会进入while循环

0 投票
3 回答
865 浏览

android - 如何打开特定应用的用户访问权限

此答案显示如何打开所有应用程序的一般使用访问设置:

如何直接打开该列表中特定应用的使用访问设置?

我试过了

但这与上一行相同。谢谢你。

0 投票
0 回答
105 浏览

java - UsageStatsManager 错误的时间范围

我想通过使用 UsageStatsManager.queryUsageStats 方法来获取我的应用程序的使用时间。

开始日期正确 :I/System.out: Startdate 30.10.19 00:01

但是当我遍历条目时:

最后一天的条目也被计算在内:

org.wikipedia 29.10.19 18:42 29.10.19 23:46 1

com.android.chrome 29.10.19 18:42 30.10.19 08:34 41 ...

并且还计算此间隔的前台时间。如何正确限制间隔

0 投票
0 回答
110 浏览

java - queryUsageStats 返回指定时间范围之外的数据

我正在尝试使用UsageStatsManager类的queryUsageStats方法来仅检索设备上每个包在当天(00:00:00 到 23:59:59)的使用情况统计信息。有问题的代码如下:

检索一天的开始和结束的方法:

根据我对文档的理解,我已经为我想要实现的目标传递了适当的参数。

然而,奇怪的是,在检查调试期间返回到列表中的 UsageStats 对象时,许多对象都有一个 mBeginTimeStamp 值(表示 UsageStats 对象表示的时间范围的开始的长值,以自纪元以​​来的毫秒数为单位)表示一个时间从前一天开始。例如,在今天 12 月 13 日上午 11 点进行测试时,列表中一个包的 mBeginTimeStamp 值指向 12 月 12 日下午 1 点。

就我而言,这些值代表我当地时区的时间,而不是 UTC 时间。

0 投票
0 回答
44 浏览

java - 使用 Android Studio 获取每日使用情况统计信息

我正在开发一个显示 Android 设备上使用的应用程序的使用情况统计信息的应用程序。我要专门做的是按天划分使用时间。所以本质上,最终目标是有一个条形图,每一列是一天的总使用时间。

我已经实施了用法

使用上面的代码,我可以注销大量最近使用过的包,但所有的包和日期都是混合的。

我将 UsageStatsManager 中的时间间隔设置为 INTERVAL_DAILY,希望它将包使用的时间间隔分开,但它只是以随机顺序吐出所有内容。按天将此列表分类为块的最佳方法是什么?

我还尝试将 INTERVAL_DAILY 调整为 INTERVAL_WEEKLY 无济于事。

0 投票
0 回答
88 浏览

android - Android - UsageStats getTotalTimeInForeground 不更新当前前台应用程序

我正在运行一个前台服务,它会及时对用户的应用程序使用情况进行采样。

我注意到该UsageStats getTotalTimeInForeground(..)函数有一个奇怪的行为 - 似乎当前前台应用程序的统计信息没有更新,直到它进入后台。

代码:

每次迭代后 -在前台totalTimeUsageInMillis时不受影响。com.sample.app一旦我离开com.sample.app- 我的服务获得更新的价值

我可以通过为当前运行的 (=foreground) 应用程序保留一个计数器并将其添加到结果中来解决此问题,直到用户切换应用程序,但我不希望增加应用程序的开销。

以下屏幕截图取自我构建的测试仪,显示了 2 次通话,间隔为 1 分钟:在此处输入图像描述

0 投票
1 回答
189 浏览

android - UsageStatsManager 未返回正确的每周或每月结果

问题

我想检索UsageStats每周或每月的列表。但是,当我请求月度数据时,输出通常具有重叠的时间间隔,例如 4 月 29 日星期三到 5 月 4 日星期一(请参阅下面时间戳的最新结果)。

所以我的问题是:如何使用 UsageStatsManager 干净地获取特定周(例如周一 - 周日)或月份(例如 4 月 1 日 - 4 月 31 日)的使用情况统计信息?

背景

在我的 Android 应用程序中,我使用UsageStatsManager来检索每周/每月在前台的总时间。这篇关于如何使用的帖子UsageStatsManager已经非常有帮助,以及关于产生错误的每日结果的这篇文章UsageStatsManager(我正在使用该方法进行日常使用统计,现在工作正常)。

问题

当我尝试检索每周/每月间隔的使用情况统计信息时,问题就开始了。UsageStatsManager文档指出

使用数据汇总为时间间隔:天、周、月和年。

但是我从查询 UsageStatsManager 得到的输出是非常不同的。我如何检索过去两个月的 UsageStats 对象列表的示例:

但是,当我查看List<UsageStats> result并记录包的时间戳及其前台时间时,我得到了一堆时间戳,但它们根本不是每月间隔的。我从以下位置为联系人应用程序检索到的时间戳示例result

这似乎几乎随机地划分为区间。

任何有关 UsageStatsManager 为何具有此行为的链接/解释,或使用 UsageStatsManager 查询周/月/年的开源应用程序示例都会非常有帮助。提前致谢。

0 投票
1 回答
217 浏览

android - 如何按小时获取我的应用程序屏幕时间?

Android 的 UsageStatsManager 返回至少一天的数据,但我想获得从上午 12 点到当前时间的准确数据。我尝试了几种类型,但都没有正常工作。“Action Dash”和“Digital Wellbeing”正在准确获取数据。