2

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

我想构建我的库的清单,使其不会获取所有这些功能所需的所有可能权限。相反,我想让使用该库的应用程序只声明需要的权限,这可能是该库使用的一个较小的子集。

这实际上是可行的,因为清单在构建过程中都会合并在一起,因此应用程序最终获得了使用库功能所需的权限。但是,由于该<uses-permission>标签不在的清单中,因此代码全都被来自 Android Studio 的警告所照亮。

  1. 有没有办法注释我的库代码以忽略权限检查? 当然,我可以简单地在我的Android Studio 设置中关闭“常量和资源类型不匹配”检查,但这对尝试使用该库的其他人没有帮助。我尝试在文档中找到对这个检查的引用(所以我可以用它杀死它@SuppressWarnings但还没有找到它。

  2. 这甚至是一个值得的方法吗? …或者我应该让库获取它需要的所有权限,这将迫使库的使用者关闭不需要使用清单中的tools:node="remove"属性的权限?这里的问题是,当我向我的库中添加功能时,我的库的消费者将不得不反复循环并明确删除这些新权限。我觉得这不是一个很好的模型,我宁愿将许可请求留给我的消费者。

考虑以下有关该主题的对话-</p>

4

1 回答 1

6

在随机右键单击该问题时,我能够在 Android Studio 中选择Suppress for method context 命令,并添加了以下注释:

@SuppressWarnings( "ResourceType" )

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

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

于 2016-02-10T20:05:33.457 回答