Android实现动态申请储存权限

针对Android 6.0及以上系统,由于File.mkdirs()因缺少储存权限导致执行失败,解决办法是在AndroidManifest.xml中声明READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,并在运行时动态申请。通过ActivityCompat的shouldShowRequestPermissionRationale方法检查是否需要显示权限请求理由,再调用requestPermissions方法申请权限。同时,检查权限状态,若未获得权限则提示用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

File.mkdirs()函数执行失败,因为没有申请储存权限,在Android6.0以上,需要进行储存权限的申请

首先在AndroidManifest.xml中加入

    <!--动态储存权限申请-->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在需要储存权限的地方加入

//动态申请储存权限
boolean sSRPR=ActivityCompat.shouldShowRequestPermissionRationale(this,android.Manifest.permission.WRITE_EXTERNAL_STORAGE)|ActivityCompat.shouldShowRequestPermissionRationale(this,android.Manifest.permission.READ_EXTERNAL_STORAGE);
if(sSRPR) {
	ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE}, 0);
}else{
	ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE}, 0);
}

权限检查

            //permission check
            if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
                Toast.makeText(getBaseContext(),"没有储存权限,请到设置中更改",Toast.LENGTH_SHORT).show();
                return false;
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

百口可乐__

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

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

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

打赏作者

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

抵扣说明:

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

余额充值