Android 无法访问Context.USAGE\u STATS\u服务

Android 无法访问Context.USAGE\u STATS\u服务,android,service,android-5.0-lollipop,Android,Service,Android 5.0 Lollipop,我正试图通过以下方式访问棒棒糖中的用法统计服务: final usagestastsmanager usagestastsmanager=(usagestastsmanager)this.getSystemService(Context.USAGE\u STATS\u SERVICE) Android Studio一直说它不是一个有效的常量 它不是一个公开可用的常量,因为使用中的@hide注释隐藏了USAGE\u STAT\u SERVICE。这一点是由中缺少使用情况统计服务支持的 getSy

我正试图通过以下方式访问棒棒糖中的
用法统计服务

final usagestastsmanager usagestastsmanager=(usagestastsmanager)this.getSystemService(Context.USAGE\u STATS\u SERVICE)
Android Studio一直说它不是一个有效的常量

它不是一个公开可用的常量,因为使用中的
@hide
注释隐藏了
USAGE\u STAT\u SERVICE
。这一点是由中缺少
使用情况统计服务
支持的

getSystemService
具有仅接受
@ServiceName
常数

这是由于“属性检查”,不应影响编译。可能是

我还使用直接字符串成功地获得了一个
UsageManagerService
实例

UsageStatsManager manager = (UsageStatsManager) getSystemService("usagestats");
此外,值得注意的是

Studio只是将其标记为无法授予的权限(根据文档,技术上是正确的),因此Studio此时不知道此类“特殊”权限

可以在中授予使用权限

Settings > Security > Apps with usage access

我看到这个,在问之前试过了。我清理了储藏室等。。。问题仍然存在。我认为在没有公认答案的情况下,用手指着另一个问题来回答问题不是一个好方法。我不是在回答你的问题(虽然我指给你的那个人确实回答了这个问题,是发布答案的作者),我指的是与你的问题相同的材料,正如你所说的,没有什么能使它与其他的区别。更新到android 0.8.14。使用Suppress警告。正在更新sdk21。清除和重建lint缓存我很感激,但这些解决方案对我都不起作用。我昨天使用直接字符串解决了它,但不得不删除常量的属性检查。我认为注释中的@hide与编译无关,只是文档。
Settings > Security > Apps with usage access