我正在开发一个 Android 库,它提供了访问各种系统服务和收集数据进行分析的方法。我的课程使用各种系统服务管理器(如WifiManager
)来收集数据。
我想构建我的库的清单,使其不会获取所有这些功能所需的所有可能权限。相反,我想让使用该库的应用程序只声明它需要的权限,这可能是该库使用的一个较小的子集。
这实际上是可行的,因为清单在构建过程中都会合并在一起,因此应用程序最终获得了使用库功能所需的权限。但是,由于该<uses-permission>
标签不在库的清单中,因此代码全都被来自 Android Studio 的警告所照亮。
有没有办法注释我的库代码以忽略权限检查? 当然,我可以简单地在我的Android Studio 设置中关闭“常量和资源类型不匹配”检查,但这对尝试使用该库的其他人没有帮助。我尝试在文档中找到对这个检查的引用(所以我可以用它杀死它
@SuppressWarnings
但还没有找到它。这甚至是一个值得的方法吗? …或者我应该让库获取它需要的所有权限,这将迫使库的使用者关闭它不需要使用清单中的
tools:node="remove"
属性的权限?这里的问题是,当我向我的库中添加功能时,我的库的消费者将不得不反复循环并明确删除这些新权限。我觉得这不是一个很好的模型,我宁愿将许可请求留给我的消费者。
考虑以下有关该主题的对话-</p>