美文网首页
Android6.0特性之权限申请

Android6.0特性之权限申请

作者: 奈文_摩尔 | 来源:发表于2018-12-21 10:32 被阅读0次

    Android6.0系统以后的危险权限不禁要在Manifest.xml中注册,还有做动态申请,下面以申请SD卡读写权限为例:

    /**
         * 权限申请 SD卡的读写权限
         * @param activity
         */
        private void verifyStoragePermission(Activity activity){
            //1检测权限
            int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
            if (permission!= PermissionChecker.PERMISSION_GRANTED){
                //2没有权限,需要申请权限,弹出对话框
                ActivityCompat.requestPermissions(activity,PERMISSION_STORAGE,REQUSET_CODE_STORAGE);
            }
        }
    

    定义一个方法,首先检测有没有写入SD卡的权限,如果没有此权限,那么将弹出对话框申请权限。ActivityCompat.requestPermissions(activity,PERMISSION_STORAGE,REQUSET_CODE_STORAGE);的三个参数分别为:上下文对象,需要申请权限的数组,申请码。

    private static final int REQUSET_CODE_STORAGE = 1;
    
        private String[] PERMISSION_STORAGE ={
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
                Manifest.permission.READ_EXTERNAL_STORAGE
        };
    

    然后定义一下后两个参数,申请权限的数组为SD卡的读和写的权限,申请码定义为1。

    /**
         * @param requestCode 请求码
         * @param permissions 申请的权限
         * @param grantResults 请求结果的集合
         */
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    
            if (grantResults[0]==PermissionChecker.PERMISSION_GRANTED){
                //申请权限成功
                Toast.makeText(this,"授权SD卡权限成功",Toast.LENGTH_SHORT).show();
            }else {
                //申请权限失败
                Toast.makeText(this,"授权SD卡权限失败,可能会影响应用的使用",Toast.LENGTH_SHORT).show();
            }
        }
    

    重写onRequestPermissionsResult方法作为申请权限的回调,用于用户操作后的处理,三个参数如注释所示。

    最后一定不要忘记在清单文件中做注册

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    

    以上就是简单的关于对权限动态注册的模板,仅此作为个人记录,欢迎大家指出错误指出和提出更好的建议。

    相关文章

      网友评论

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

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