Android Studio:是否可以使用注解永久忽略权限检查?

Android Studio: Can permission inspections be permanently ignored using annotations?

我正在开发一个 Android 库,它提供了访问各种系统服务和收集数据进行分析的方法。我的 类 使用各种系统服务管理器(如 WifiManager)来收集数据。

喜欢构建我的库的清单,这样它就不会获取所有这些功能所需的所有可能权限。相反,我想让应用程序 consuming 该库只声明 it 需要的权限,这可能是图书馆所用内容的较小子集。

这在实践中确实有效,因为清单在构建过程中全部合并在一起,因此应用最终获得了使用库功能所需的权限。但是,由于 <uses-permission> 标记不在 库的清单中,因此代码都被 Android Studio 发出的警告点亮。

  1. 有没有办法注释我的库代码以便忽略权限检查? 当然,我可以简单地关闭 my Android Studio 设置中的 "Constant and Resource Type Mismatches" 检查,但这对其他尝试使用该库的人没有帮助。我试图在文档中找到对此检查的引用(所以我可以用 @SuppressWarnings 杀死它但还没有找到它。

  2. 这种方法值得吗? …或者我应该让图书馆获得它需要的所有权限,这将迫使图书馆的消费者关闭不需要的那些使用tools:node="remove" 属性 在 它的 清单中?这里的问题是,当我向我的库添加功能时,我的库的消费者将不得不反复返回并显式地删除这些新权限。我觉得这不是一个很好的模型,我宁愿将权限请求留给我的消费者。

考虑以下关于该主题的对话 —

在问题周围随机右键单击,我能够在 Android Studio 中选择 Suppress for method 上下文命令,它添加了以下注释:

@SuppressWarnings( "ResourceType" )

所以……耶!这里有使用哪个注释的答案。

不过,我仍然对人们对这种方法的总体看法很感兴趣。请随时在答案部分讨论一下。 ^_^