Android v6权限 - 请求我的SDK权限

时间:2016-04-20 09:17:25

标签: android sdk permissions

我再一次需要你的帮助stackoverflowers!

我一直在开发SDK,现在需要验证用户是否授予了位置或文件写入等权限。

验证很好,但我认为如果需要,我应该请求许可。问题是,我绝对无法访问任何活动。我可能会使用appContext来检查权限,但是我无法像这样收听onRequestPermissionsResult。

是否有一种聪明的方式可以请求我方的许可,或者我是否应该让开发人员使用我的SDK及时询问权限,以便我可以使用我(以及他们)稍后需要的功能?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

我个人更喜欢SDK让我作为开发人员处理何时询问权限,因为我可能需要给用户一些警告,提前处理或在提示之前做其他事情。

如果您查看Google Play位置服务等SDK,就会将开发人员的位置权限留给处理人员,只需向可能失败的调用添加警告,说明它可能会抛出SecurityException

他们还使用了一个名为android.support.annotation.RequiresPermission的注释,您可以使用它来帮助SDK的用户。使用此注释将为您提供上述异常警告/错误。

来自官方文档的

示例

@RequiresPermission(anyOf = {Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION})
public abstract Location getLastKnownLocation(String provider);

并且结果

enter image description here

答案 1 :(得分:0)

我认为你必须在文档中声明权限并向你的sdk用户委派权限 - 麻烦,因为库可能是 Model 的一部分,并且它不能用UI操作(权限对话框)< / p>

You can't call permission dialog without activity