我需要了解最近的应用使用情况。
在API 21之前,我们使用getRunningTasks或getRecentTasks来获取此信息。这些方法在API 21中根据文档弃用。
现在有UsageStatsManager类,在API级别21中引入。
但是! Context.getSystemService(UsageStatsService)was added only in API level 22!
问题是 - 如何在API 21中获取所需数据?根据{{3}},此API级别的用户中有13%,我不想丢失它们。
答案 0 :(得分:4)
在API级别1中引入了Context#getSystemService(...)
,但在API级别22中引入了Contexts'USAGE_STATS_SERVICE
字符串。因此 public static final String 字段Context.USAGE_STATS_SERVICE
只能在API级别为22及以上的设备上访问。为了在API级别21中获取所需的数据,您只需将已解析的String“usagestats”传递给此方法。
<强> TL;博士强>
使用Context.getSystemService("usagestats")
进一步说明:
#1 USAGE_STATS_SERVICE
字段已在API级别21中,但标记为@hide
属性,该属性无法访问。在API级别22中,这已被删除。
#2您可能希望通过@SuppressWarnings("WrongConstant")
转换给定方法的归因检查,否则Android Studio会抱怨它不是有效常量