0

我需要获取有关最近应用程序使用情况的信息。Android获得API级别21中的UsageStatsManager

在使用API​​ 21之前,它使用getRunningTasksgetRecentTasks来获取此信息。根据文档,这些方法在API 21中已弃用。

现在有UsageStatsManager类,引入API级别21.
但是! Context.getSystemService(UsageStatsService)was added only in API level 22!

的问题是 - 在API 21如何获得所需的数据?根据dashboards,在这个API级别有13%的用户,我不想失去他们。

回答

1

Context#getSystemService(...)在API级别1推出,但上下文USAGE_STATS_SERVICE字符串在于是公共静态最后弦乐Context.USAGE_STATS_SERVICE只能在设备与API级别22和高达访问API级别22引入的。为了获得API级别21中所需的数据,您只需将解析的String“usagestats”传递给此方法即可。

TL;博士
使用Context.getSystemService("usagestats")

其它注意事项:
#1 USAGE_STATS_SERVICE场已经在API级别21,但被标记与在人迹罕至作出@hide财产。在API级别22中,这被删除。

#2您可能希望通过@SuppressWarnings("WrongConstant")关闭给定方法的属性检查,否则Android Studio会投诉它不是有效的常量

相关问题