美文网首页
动态权限申请总结

动态权限申请总结

作者: 海在路上 | 来源:发表于2017-10-18 10:12 被阅读5次

    》》几个变量类型:

    》》权限:Manifest.permission.READ_EXTERNAL_STORAGE(String);

    》》 权限已申请和未申请:

    ①. 授予: PackageManager.PERMISSION_GRANTED

    ②. 拒绝: PackageManager.PERMISSION_DENIED

    》》解释权限

    // 解释权限

    ActivityCompat.shouldShowRequestPermissionRationale(Activityactivity,Stringpermission)

    判断是否有必要向用户解释为什么要这项权限。如果应用第一次请求过此权限,但是被用户拒绝了,则之后调用该方法将返回 true,此时就有必要向用户详细说明需要此权限的原因(个人认为此方法是可选的)。

    PS: 如果应用第一次请求此权限时被用户拒绝,第二次再请求此权限时,用户勾选了权限请求对话框的“不再询问”,则此方法返回 false。如果设备规范禁止应用拥有该权限,此方法也返回 false。

    》》权限判断是已授权还是已拒绝:

    ①.授予:PackageManager.PERMISSION_GRANTED

    ②.拒绝:PackageManager.PERMISSION_DENIED

    ContextCompat.checkSelfPermission(context,Manifest.permission.READ_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED)

    》》申请权限:

    // 请求权限

    ActivityCompat.requestPermissions(Activityactivity,String[]permissions,intrequestCode)

    》》处理权限申请:

    /**

    * 处理权限请求结果

    *

    * @param requestCode

    *          请求权限时传入的请求码,用于区别是哪一次请求的

    *

    * @param permissions

    *          所请求的所有权限的数组

    *

    * @param grantResults

    *          权限授予结果,和 permissions 数组参数中的权限一一对应,元素值为两种情况,如下:

    *          授予: PackageManager.PERMISSION_GRANTED

    *          拒绝: PackageManager.PERMISSION_DENIED

    */

    @Override

    public void onRequestPermissionsResult(int requestCode,Stringpermissions[],int[]grantResults) {

    }

    相关文章

      网友评论

          本文标题:动态权限申请总结

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