问题标签 [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.
android - AndroidTV:UsageStatsManager 在重新启动后不返回应用结果的详细信息
我正在开发一个 Android TV 应用程序(系统应用程序),我正在尝试使用UsageStatsManager来获取最近使用的应用程序列表。
通过以下方法,
上述方法提供了正确的使用数据,但在设备重新启动后,它不会提供以前使用的应用程序使用数据,直到重新启动后再次打开该应用程序。
但是相同的代码在 android Phone 中可以正常工作(重启后)。
我还在 Android TV 中尝试了来自 Github 的这个示例应用程序,它在 Android TV 中重新启动后也无法提供详细信息(但适用于 Mobile ,两个操作系统版本 8)。
为什么它无法获取 Android TV 的应用程序使用数据?
TIA
android - 如何检测应用程序前台时间?
如何找到在前台使用的android应用程序的花费时间。我使用了 UsageStatsManager,但它不返回包列表。
此链接中使用的示例代码
android - queryEvents 调用不返回任何内容
如果这是一个重复的帖子,我很抱歉,但我已经查看了几个问题,但似乎没有一个对我有帮助。所以,我试图调用 queryEvents() 但我什么也没得到。我在这里附上我的代码,如果有人能指出我所缺少的,将不胜感激。它永远不会进入while循环
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 ...
并且还计算此间隔的前台时间。如何正确限制间隔
java - queryUsageStats 返回指定时间范围之外的数据
我正在尝试使用UsageStatsManager
类的queryUsageStats
方法来仅检索设备上每个包在当天(00:00:00 到 23:59:59)的使用情况统计信息。有问题的代码如下:
检索一天的开始和结束的方法:
根据我对文档的理解,我已经为我想要实现的目标传递了适当的参数。
然而,奇怪的是,在检查调试期间返回到列表中的 UsageStats 对象时,许多对象都有一个 mBeginTimeStamp 值(表示 UsageStats 对象表示的时间范围的开始的长值,以自纪元以来的毫秒数为单位)表示一个时间从前一天开始。例如,在今天 12 月 13 日上午 11 点进行测试时,列表中一个包的 mBeginTimeStamp 值指向 12 月 12 日下午 1 点。
就我而言,这些值代表我当地时区的时间,而不是 UTC 时间。
java - 使用 Android Studio 获取每日使用情况统计信息
我正在开发一个显示 Android 设备上使用的应用程序的使用情况统计信息的应用程序。我要专门做的是按天划分使用时间。所以本质上,最终目标是有一个条形图,每一列是一天的总使用时间。
我已经实施了用法
使用上面的代码,我可以注销大量最近使用过的包,但所有的包和日期都是混合的。
我将 UsageStatsManager 中的时间间隔设置为 INTERVAL_DAILY,希望它将包使用的时间间隔分开,但它只是以随机顺序吐出所有内容。按天将此列表分类为块的最佳方法是什么?
我还尝试将 INTERVAL_DAILY 调整为 INTERVAL_WEEKLY 无济于事。
android - Android - UsageStats getTotalTimeInForeground 不更新当前前台应用程序
我正在运行一个前台服务,它会及时对用户的应用程序使用情况进行采样。
我注意到该UsageStats getTotalTimeInForeground(..)
函数有一个奇怪的行为 - 似乎当前前台应用程序的统计信息没有更新,直到它进入后台。
代码:
每次迭代后 -在前台totalTimeUsageInMillis
时不受影响。com.sample.app
一旦我离开com.sample.app
- 我的服务获得更新的价值
我可以通过为当前运行的 (=foreground) 应用程序保留一个计数器并将其添加到结果中来解决此问题,直到用户切换应用程序,但我不希望增加应用程序的开销。
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 查询周/月/年的开源应用程序示例都会非常有帮助。提前致谢。
android - 如何按小时获取我的应用程序屏幕时间?
Android 的 UsageStatsManager 返回至少一天的数据,但我想获得从上午 12 点到当前时间的准确数据。我尝试了几种类型,但都没有正常工作。“Action Dash”和“Digital Wellbeing”正在准确获取数据。