问题标签 [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 回答
784 浏览

android - 获取每个应用程序在 Android 前台花费的时间

我正在尝试获取应用程序在前台的时间,并且我想在执行此操作时使用服务,因为它需要一直在后台运行。

这是我的主要活动

这是我将用于这项工作的服务活动。

我的问题是我是否应该实现代码,以便在onStartCommand方法或其他地方为每个应用程序获得时间?先感谢您。

0 投票
1 回答
986 浏览

android - Android:如何在 UsageStats 中获取应用程序标签

我可以使用 UsgaeStatsManager 获取应用程序的使用统计信息,如下所示

当我得到输出时,它如下所示:

这是正确的,但我想得到这个列表,其中包含更多用户可读格式的应用程序名称,例如

我想知道我们是否有任何类似于 api applicationInfo.loadLabel(getPackageManager()).toString(); 的 api 在 PackageManager 中,它为用户提供可读的包名称,而不是包的技术名称。或者,有没有其他方法可以打印包的简单名称?

0 投票
1 回答
351 浏览

android - 在计算数据使用情况时为 querySummary 方法获取 NullPointerException

我正在使用 NetworkStatsManager 的 querySummary() 方法来计算数据使用情况,它给了我正确的使用方法,但有时它会为此方法抛出 NullPointerException。

UsageTestService 中的错误:

我的代码:

会有什么问题?

0 投票
1 回答
675 浏览

java - 使用 UsageEvents、UsageEvents.Event 和 MOVE_TO_FOREGROUND 计算每个应用在一天内使用了多少次

使用 UsageStatsManager 和 UsageStats,我可以获得智能手机上每个应用程序的每日使用情况(以小时、分钟和秒为单位)。现在我想知道是否有一种方法可以获取我智能手机上每个应用程序的每日使用频率(次数,即1次、2次等)。

阅读文档我推断这可以使用 UsageEvents、UsageEvents.Event 和 MOVE_TO_FOREGROUND 来实现。所以我写了以下代码:

但经过几次测试后,我注意到,例如,如果我打开 Whatsapp 一次,它的每日使用计数增加了 2 个单位(而不是 1 个单位),而对于 Facebook 或默认浏览器等其他应用程序,计数是可以的。

代码中是否有任何错误?为什么它不适用于所有已安装的应用程序?有没有其他方法可以获得相同的结果?

0 投票
0 回答
156 浏览

android - 使用 UsageStatsManager 检索应用程序从上午 12 点到当前时间所花费的前台时间

我想找出某个应用程序从上午 12 点到当前时间的前台时间。这是我到目前为止尝试过的

我希望前台时间为 0,当时间稍微超过 12 点并且未打开 example.app 时。但情况似乎并非如此。它往往不会在上午 12 点重置,但要晚得多。

我没有找到太多关于 UsageStatsManager 的文档,上面的代码是对 StackOverflow 上的另一个答案的轻微修改,以符合我的需求。

我也尝试过 UsageStatsManager.INTERVAL_DAILY 但即使这样似乎也不能完全满足我的目的。

任何帮助深表感谢。

0 投票
1 回答
149 浏览

android - UsageStats 刷新和更新时间

数据多久更新一次UsageStatsManager?并且可以更频繁地刷新它们吗?因为我需要制作一个应用程序来跟踪其他应用程序的使用时间,并且我基于UsageStatsManager但它很少更新。有时在 20 分钟甚至更长时间后。

0 投票
0 回答
485 浏览

android - 尝试获取已安装应用程序列表时崩溃:PackageManager$NameNotFoundException

我在几个用户(运行 android 7.0/7.1)时发生了崩溃,我无法重现。

崩溃发生在我尝试获取已安装应用程序列表的模块中。我在真实硬件和各种模拟器上测试了该应用程序,没有出现任何问题。

我在下面展示了我的代码的简化版本。

崩溃的行是:

在函数 getInstalledAppList 中。

ListApptest 是一个从片段实例化的类:

我将 packageManager 初始化为 activity.getPackageManager() 并且看起来 getInstalledApplications() 运行良好(我可以添加对返回值的检查?)那么 PackageManager$NameNotFoundException 的原因是什么?

getInstalledApplications 怎么会返回一个未知的包名?

这是我的代码:

以下是相关的跟踪:

编辑

我有一个友好的测试人员(不在同一个城市)发生了崩溃。我能够得到一些数据:

在 infos = packageManager.getInstalledApplications 之后:

坠机前:

所以看起来它在 com.samsung.knox.knoxtrustagent 上崩溃了?

可能是什么原因?你如何解决这个问题?

0 投票
1 回答
464 浏览

android - 如何像运行时权限一样请求 UsageStatsManager 权限?

我想知道是否存在一些解决方案来请求UsageStatsManager权限,比如正常的运行时权限,用户可以在哪里允许或拒绝访问?

在此处输入图像描述

我不想将用户重定向到具有使用访问权限的列表应用程序,但仍然选择我的应用程序来检查此权限,如下代码所示:

0 投票
0 回答
161 浏览

android - 如何根据 TimeInForeground 对 UsageStats 列表进行排序?

这是我用来获取UsageStats每个已安装应用程序列表的代码。

这是 SortListComparotorDesc 类。

这是我的Logcat:

0 投票
0 回答
1041 浏览

android - 是否可以在 Android 中监控特定 WIFI 网络的数据使用情况?

我想使用 Android 设备监控特定 WIFI 网络的数据使用情况。查看 API 的文档,我发现了以下类NetworkStatsManagerUsageStatsManager,但它们似乎都没有帮助我。是否有可能做到这一点?