美文网首页Android知识@IT·互联网程序员
Android6.0新特性之权限申请

Android6.0新特性之权限申请

作者: 一梦付浮生 | 来源:发表于2017-04-28 13:06 被阅读99次

    Android开发新特性之权限详解

    Android6.0之后引入了一个新的应用权限模型,期望对用户更容易理解,更易用和安全。该模型将标记为危险的权限从安装时(Install Time Permission)权限模型移动到了运行时权限模型(Runtime Permission):

    运行时权限(Android6.0及以后)。用户在应用运行时,对应用授予危险权限。由应用决定何时去申请权限(例如,在应用启动时或者用户访问某个特性时),但必须容许用户来授予或者拒绝应用对特定权限组的访问。OEM和运营商 可以预装应用,但是不能对权限进行预授权

    现如今权限分为两大模块

    Normal Permission:对于用户隐私没有危险的,在清单文件中申请就可以直接授权。

    Dangerous Permission : app需要访问用户的隐私信息等,即使在清单文件注册,也需要在运行是通过用户授权。

    检查权限(check permission)

    在android6.0及以上的sdk提供了一个检查权限的方法:ContextCompat.checkSelfPermission()。

    请求权限

    在Android 6.0及以上,如果检查没有权限,需要主动请求权限。在请求权限是会弹出一个对话框提示用户,是否授权。

    请求权限的方法:requestPermissions()。在请求权限后会有一个回调方法onRequestPermissionsResult()。

    在某些情况下,你希望用户能理解你的app为什么需要这样一个权限。例如:用户打开一个摄影的app,用户不会惊讶于camera权限,但不理解location权限或联系人权限。所以在用户授权之前,需要向用户提供一个解释。

    另一种方法是,如果一个用户试图使用需要一个权限的功能,但拒绝了权限请求,当下一次使用到此功能时,给用户一个解释。

    对应此场景,android6.0(API23)及以上,提供了一个方法:shouldshowrequestpermissionrationale(),如果应用程序请求此权限,并且用户拒绝了请求,则此方法返回true。

    案例源码如下

    相关文章

      网友评论

        本文标题:Android6.0新特性之权限申请

        本文链接:https://www.haomeiwen.com/subject/ulwozttx.html