Android v6 权限 - 为我的 SDK 请求权限
Android v6 permissions - Asking permission for my SDK
我再次需要你的帮助 Whosebugers!
我一直在开发 SDK,现在需要验证用户是否授予了位置或文件写入等权限。
验证没问题,但我想如果需要的话我应该征求一下许可。问题是,我绝对无法参加任何活动。我可能会使用 appContext 来检查权限,但我无法像这样收听 onRequestPermissionsResult。
有什么巧妙的方法可以向我这边请求权限,还是我应该让使用我的 SDK 的开发人员及时请求权限,以便我以后可以使用我(和他们)需要的功能?
感谢您的帮助!
就我个人而言,我更喜欢 SDK 让我作为开发人员处理何时请求权限,因为我可能需要给用户一些警告,提前处理或在提示他们之前做其他事情。
如果您查看像 Google Play Location 服务这样的 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);
作为结果
我认为您必须在文档中声明权限并将权限问题委托给您的 sdk 用户,因为库可能是 Model 的一部分并且它不能使用 UI(权限对话框)
You can't call permission dialog without activity
我再次需要你的帮助 Whosebugers!
我一直在开发 SDK,现在需要验证用户是否授予了位置或文件写入等权限。
验证没问题,但我想如果需要的话我应该征求一下许可。问题是,我绝对无法参加任何活动。我可能会使用 appContext 来检查权限,但我无法像这样收听 onRequestPermissionsResult。
有什么巧妙的方法可以向我这边请求权限,还是我应该让使用我的 SDK 的开发人员及时请求权限,以便我以后可以使用我(和他们)需要的功能?
感谢您的帮助!
就我个人而言,我更喜欢 SDK 让我作为开发人员处理何时请求权限,因为我可能需要给用户一些警告,提前处理或在提示他们之前做其他事情。
如果您查看像 Google Play Location 服务这样的 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);
作为结果
我认为您必须在文档中声明权限并将权限问题委托给您的 sdk 用户,因为库可能是 Model 的一部分并且它不能使用 UI(权限对话框)
You can't call permission dialog without activity