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

android - 应用程序在前台时如何计算应用程序使用时间?

我正在开发一个用于跟踪日常应用使用情况的安卓应用。这个想法是用户可以为任何应用程序设置每日时间限制,并且在超过限制后最多 2 分钟内会出现通知。(延迟的原因:我使用AlarmManager类创建了一个警报系统,该类将每分钟发出一次运行JobIntentService来检查是否超过任何应用程序的限制)

我使用了UsageStatsManager类的queryEvents方法来计算应用程序的使用时间。

这是我计算应用程序使用时间的代码(我遵循了如何使用 queryEvents):

简而言之,上面的代码计算了应用程序进入前台时的时间戳(UsageEvents.Event.ACTIVITY_RESUMED)和进入后台时的时间戳( UsageEvents.Event.ACTIVITY_PAUSED )的时间差。然后它将这个差异添加到应用程序的总使用时间中。

问题是除非应用程序进入后台,否则无法计算在前台花费的时间。因此,如果超出使用限制,直到应用程序进入后台才会出现通知

当应用程序在前台时,实际上是否有可能获得前台时间?

注意我已经尝试了queryUsageStatsUsageStats.getTotalTimeInForeground()但由于 queryUsageStats 有一些与此问题无关的其他问题而无法成功。

0 投票
1 回答
406 浏览

android - 如何在android中跟踪应用程序的使用时间?

我已经搜索了很长时间,但我无法解决这个问题。

我正在开发应用程序使用应用程序,我想让用户可以限制应用程序使用时间。

假设用户想要将 Youtube 应用程序的使用时间限制为 10 分钟。

1.当用户点击按钮后 Youtube 应用程序使用量达到 10 分钟时,我如何发出通知或烤面包机?(我知道事件处理)

  1. 即使我的应用程序成为背景,我也可以让观察者吗?甚至在被摧毁后?

根据我的搜索 registerAppUsageObserver看起来像我想要的,但我不能使用它,因为它的@hide

我可以尝试通过反射来使用它,但我认为它不推荐。

我还有一个很好的源链接,但我不知道如何使用它。

请帮我。谢谢你。

0 投票
0 回答
102 浏览

android - Android queryUsageStats() 返回空数组

UsageStatsManager用来获取用户启动的应用程序列表。

一开始它似乎运行良好,但它不断返回一段时间前的空数组。我的日志Log.d("appusing", queryUsageStats.size.toString())显示 0。

这是我的代码。提前致谢。

MainActivity.kt

AndroidManifest.xml

0 投票
1 回答
57 浏览

android - android studio中其他应用的Android时间使用情况

我想知道我在 android studio 的应用程序(facebook、messenger ...)上花了多少时间

我看过这篇文章如何以编程方式获取在 Android 中的应用程序上花费的时间

但我有一个空列表usageStatsManager.queryUsageStats

任何其他有价值的来源或想法如何纠正我面临的问题。

0 投票
1 回答
545 浏览

c# - 如何在 xamarin android 中使用使用情况统计管理器来列出正在运行的应用程序

我似乎找不到任何好的资源来展示如何在 c# 中使用 UsageStatsManager 来获取所有正在运行的应用程序的列表。我已经看到活动管理器和运行任务在 Lollipop 之后的版本中不再工作,我正在尝试创建一个需要此信息的任务管理器应用程序。

我用过:

使用 TimeUtils 作为:

这将返回 null,我不确定这是否可能是权限错误?我正在使用 Package_Usage_stats 的用户权限:

使用权限 android:name="android.permission.PACKAGE_USAGE_STATS"

任何帮助将非常感激

0 投票
1 回答
114 浏览

java - 如何正确使用 queryUsageStats

我正在尝试编写一个 android 应用程序,它会告诉我已安装应用程序的使用情况。目前我只使用当天。如何使用 queryUsageStats 获取应用程序的使用历史记录?还有其他方法吗?有人可以提供一个如何使用它的例子吗?提前致谢。

0 投票
0 回答
72 浏览

android - 获取当前在前台和后台运行的应用程序列表

我正在做一个 Android 项目,我需要知道哪些应用程序当前正在运行ForegroundBackground。我使用了 UsageStats,但它告诉我最近使用的应用程序。但它并没有告诉我应用程序是在前台还是后台运行。有没有其他方法可以获取???

0 投票
0 回答
58 浏览

java - 如何使用 Android UsageStatsManager 获取当前运行的应用程序名称?

我正在尝试获取当前在我的 android 手机中运行的所有应用程序名称,并将它们显示在 logcat 中。这是在后台完成的,所以我正在使用service该类。我的代码如下:

但是无论我运行多少应用程序,代码每次都会显示日志

“已执行的应用程序”、“######### 未找到应用程序##########”

我还在清单中添加了以下权限:

我在这里做错了什么?为什么它无法获取我设备上正在运行的应用程序?

0 投票
0 回答
30 浏览

android - 使用统计管理器 - 确定应用程序是“启动”还是“恢复”

想要确定应用程序是从终止状态启动还是从后台启动。他们俩都返回了该ACTIVITY_RESUMED事件。我同样参考了UsageEvents文档,但是没有运气。

有没有可以识别相同的逻辑?

以下是我的代码片段。

0 投票
0 回答
108 浏览

android - 如何使用 UsageStatsManager.queryUsageStats(...)?

背景

我想要关于我公司平板电脑上不同应用程序的使用数据。最佳解决方案跨越的时间最长。我在这里读到,我应该能够通过一些 UsageStatsManager 查询获取长达两年的数据。

我试过的

我认为UsageStatsManager.queryAndAggregateUsageStats(..)可以解决问题,但我发现它最多只能返回一周左右的时间间隔。由于“聚合”查询不起作用,我尝试了这段代码,因此我可以显式声明存储桶大小:

我尝试使用多个不同的时间间隔,包括:

我能得到的最长间隔是一周左右。

示例日志:

我现在在哪里

我一定是做错了什么,因为INTERVAL_YEARLY常量没有被弃用。但是,我从其他帖子(例如这篇文章或这篇文章)中推断出这个 API 是粗略的。

我的下一步是通过UsageStatsManager.queryEvents(..)构建我自己的统计数据,这看起来更加一致和清晰。

问题

  1. 问题是什么?
  2. UsageStatsManager 数据是否值得信任?

规格和代码

我的设备是 Android 9.0 Samsung Galaxy Active Tab2。

这是完整的功能!

我使用的权限!