Android6.0权限设置

来源:互联网 发布:javascript alert 编辑:程序博客网 时间:2024/04/30 05:38

  今天写关于图片读写的代码时,发现在华为MT7这个手机上读写文件失败,刚开始以为自己的权限写错了,后来的经过多方查找,发现并不是代码的问题,而是Android6.0在权限处理上做了改动。在6.0之前的版本,需要什么样的权限只需要在Manifest文件中添加相应的权限即可,6.0及其以后的版本需要动态申请权限。
直接上代码:

//动态请求读写权限    private void setPermissions() {        //版本大于6.0的情况        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M/*23*/) {            int REQUEST_CODE_CONTACT = 101;//请求码            String[] permissions = {                    Manifest.permission.READ_EXTERNAL_STORAGE,                    Manifest.permission.WRITE_EXTERNAL_STORAGE};            //验证是否许可权限            for (String str : permissions) {                if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {//如果没有允许,则申请权限                    //申请权限                    this.requestPermissions(permissions, REQUEST_CODE_CONTACT);                    return;                }            }        }    }    //回调函数    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        if (requestCode == 101) {            Log.i("aaa", "---请求权限成功==");        } else {            Log.i("aaa", "---请求权限失败==");        }        super.onRequestPermissionsResult(requestCode, permissions, grantResults);    }

同时还要在Manifest中添加相应的权限处理:

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