6.0权限适配 sd卡读取写入

首先,在Manifest中添加基本的权限:

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

 

 

6.0对隐私的设置更加...紧密了一些 

在用到权限的的fragment页面上写

 

  if (Build.VERSION.SDK_INT >= 23) {
            //参1 检测当前应用是否有特定权限
            //参2 需要检测权限 维系那权限 才需要动态申请
            // 危险权限 跟用户隐私相关的权限 sd卡 短信 通话记录 打带你话 位置 摄像头 录音机
            if (ActivityCompat.checkSelfPermission(this, sdPermission) == PermissionChecker.PERMISSION_DENIED) {
                ActivityCompat.requestPermissions(this, new String[]{sdPermission}, REQUEST_SD_PERMISSION);
                return;
            } else {
                //初始化使用目录
                initDir();
            }

        } else {
            //初始化使用目录
            initDir();
        }

kotlin写法

                  if (Build.VERSION.SDK_INT >= 23) {
                        if (ActivityCompat.checkSelfPermission(
                                this,
                                sdPermission
                            ) == PermissionChecker.PERMISSION_DENIED
                        ) {
                            ActivityCompat.requestPermissions(
                                this,
                                arrayOf(sdPermission),
                                REQUEST_SD_PERMISSION
                            );
                            saveLocalData(name, sizem, down_app_url);
                            return;
                        } else {
                            downApp(name, sizem, activity, down_app_url)
                        }
                    } else {
                        downApp(name, sizem, activity, down_app_url)
                    }


在主界面 就是你MainActivity中写

 

    private String sdPermission = Manifest.permission.WRITE_EXTERNAL_STORAGE;
    /***
     * 申请权限的结果返回
     * @param requestCode
     * @param permissions 请求所有权限
     * @param grantResults 用户操作后的权限结果 GRANTED授权了 DENTED未授权
     */
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        //用户授权了
        if (grantResults[0] == PermissionChecker.PERMISSION_GRANTED) {
            initDir();
        } else {
            ToastUtils.showLong("请授权sd卡权限后 再操作");
            finish();
        }

    }

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值