- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要获取有关最近应用使用情况的信息。
在 API 21 之前,它被使用 getRunningTasks或 getRecentTasks获取此信息。根据文档,这些方法已在 API 21 中弃用。
有UsageStatsManager现在上课,在 API 级别 21 中引入。
但是! Context.getSystemService(UsageStatsService) was added only in API level 22!
问题是 - 如何在 API 21 中获取所需数据??根据dashboards ,这个 API 级别有 13% 的用户,我不想失去他们。
最佳答案
Context#getSystemService(...)
是在 API 级别 1 中引入的,但是 Contexts 的 USAGE_STATS_SERVICE
字符串是在 API 级别 22 中引入的。所以 public static final String 字段 Context.USAGE_STATS_SERVICE
只能在 API 级别 22 及更高级别的设备上访问。为了在 API 级别 21 中获得所需的数据,您只需将已解析的字符串“usagestats”传递给此方法。
tl;dr
使用 Context.getSystemService("usagestats")
补充说明:
#1 USAGE_STATS_SERVICE
字段已经在 API 级别 21 中,但被标记为 @hide
属性,这使得无法访问。在 API 级别 22 中,这已被删除。
#2 您可能希望通过@SuppressWarnings("WrongConstant")
关闭给定方法的归因检查,否则 Android Studio 会提示它不是有效常量
关于Android 在 API 级别 21 中获取 UsageStatsManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39882317/
我正在使用这个 link生成应用程序使用状态。我对所选间隔的理解是,对于 YEARLY 间隔,它会为 beginTime 和 endTimeYEAR 的数据持续时间。同样,它应该适用于 WEEKLY
背景 Google 已弃用“ActivityManager”类的函数“getRecentTasks”。现在它所做的就是获取当前应用已打开的应用列表。 我什至写了一篇关于它的帖子 here on Sta
我想显示 current bucket我的应用程序在 Android P beta 下的设备上。因此,我尝试像这样使用 UsageStatsManager 类: @Override public vo
我正在尝试使用 UsageStatsManager 在带有 Marshmallow 的 Nexus 5 上获取前台应用程序。我记得它曾经有效,但出于某种原因,我现在得到包/类名称的空字符串。 这是我的
我正在尝试从 UsageStatsManager 查询 UsageStats,目的是返回每天使用的所有应用程序包以及使用时长。 代码: public static List getUsageStats
我正在尝试使用 UsageStatsManager。我了解我需要将以下内容放入我的 Android list 中: 但是,当我尝试这样做时,Eclipse 会抛出以下错误:与元素类型“uses-pe
如果我想获取今天应用使用情况的数据,首先我允许我的应用从设置中读取应用使用统计信息,然后我使用这个查询来获取 UsageStats UsageStatsManager usm = (UsageStat
我正在尝试在 Android Wear 设备上使用 UsageStatsManager。 我做了什么: 我正在手机上运行的移动应用程序上请求权限。在用户授予权限后,我可以访问使用情况统计数据。然后我在
我正在尝试从 UsageStatsManager 查询 UsageStats。我构建了一个 DateUtils 类,它为我提供了获取每天/每月/每年(一周即将到来)的开始和结束时间的方法,如下所示:
我正在开发一个 Android TV 应用(系统应用),我正在尝试使用 UsageStatsManager 获取最近使用的应用列表。 通过以下方法, UsageStatsManager usm = g
我需要获取有关最近应用使用情况的信息。 在 API 21 之前,它被使用 getRunningTasks或 getRecentTasks获取此信息。根据文档,这些方法已在 API 21 中弃用。 有U
每当我尝试查询 UsageStatsManager 的使用情况统计信息时,我都可以正确获取最后运行的应用程序。但是,如果我拉下状态栏并且有新通知,则上次使用的应用程序(基于 UsageStats)将更
我正在尝试获取手机上当前正在运行的应用程序列表。这是我正在使用的代码: if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION
您好,我正在使用 UsageStatsManager api 向用户显示一些使用列表。但我面临一些问题。我在很多设备上都遇到这个错误,在某些设备上它工作正常。我仍在浏览这个问题。你们能帮我解决这个问题
目标: 需要获取今天的使用情况统计信息(今天使用设备的总时间),即。中午 12 点到当前时间。 问题: 1.我得到今天的时间+一些其他无法解释的时间 2.不可解释的时间戳(getTimestamp 方
下面的代码在 6.0 版本之前工作正常 if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { U
我是一名优秀的程序员,十分优秀!