【问题标题】:Android Marshmallow permissions best practicesAndroid Marshmallow 权限最佳实践
【发布时间】:2015-10-08 23:12:11
【问题描述】:
我有一个非常强大的 android 应用程序,它在各种活动和服务中进行大量磁盘访问,并且没有单点访问。这是很好的棉花糖前。
第一次询问权限并在权限被拒绝时进行处理是可以的,但如果用户在授予权限后撤销权限怎么办。现在我处于一种情况,我有 1000 行代码需要在多个地方进行权限检查。那么最好的做法是什么
1) 多个 if 检查听起来太费力了。
2) 毯子尝试捕捉
有没有更好的处理方法?
【问题讨论】:
标签:
android-permissions
android-6.0-marshmallow
【解决方案1】:
您每次使用时都必须检查权限。为简单起见,您可以使用 PermissionAcceptor-master 库。
几乎所有的权限都包含在这个库中。
您必须使用 PermissionAcceptor-master 库添加几行代码,例如
new PermissionRequest(MainActivity.this,
Permission.PERMISSION_CAMERA,
PermissionCode.CODE_PERMISSION_CAMERA,
R.string.permission_camera_rationale,
R.string.permission_camera_denied,
R.string.permission_enable_message, this)
.checkPermission();
欲了解更多信息,请访问PermissionAcceptor-master。
【解决方案2】:
我的应用程序遇到了类似的问题,即多个活动访问需要写入存储权限的 API。我最终有一个 BaseActivity 类,它在活动恢复时检查权限,如果未授予权限,它会将用户导航到初始活动。如果未授予权限,Initial 活动将永远不会让客户进行其他活动。
【解决方案3】:
如果用户在授予权限后撤销权限,则通过设置完成,在这种情况下,您的应用程序将关闭并重新启动。 BaseActivity 可能确实有助于处理onRequestPermissionsResult