Android 10 申请动态权限以后仍然无法读写文件的解决方案

在Android 10上,即使申请了动态权限,仍可能无法读写文件。解决方法是在AndroidManifest.xml中设置`<application>`标签的`requestLegacyExternalStorage`属性为`true`,但此方案未来可能不被支持。推荐将文件存储在私有目录,如`getExternalFilesDir()`、`getCacheDir()`等方法提供的路径。对于公共目录的访问,需通过MediaStore、SAF或ContentProvider等途径。了解更多高级Android知识,可查阅相关资料和社区讨论。
摘要由CSDN通过智能技术生成
  1. 仍然以targetSdkVersion 为 29,但是可在AndroidManifest.xml中application标签添加 android:requestLegacyExternalStorage="true",这样也可以,但是注意compileVersion也必须同时为 29 :

android {

compileSdkVersion 29

buildToolsVersion “29.0.3”

defaultConfig {

applicationId “com.android.test.lib”

minSdkVersion 19

t

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整资料开源分享

argetSdkVersion 29

versionCode 1

versionName “1.0”

}

}

这种方案暂时有效,但是官方在未来的版本中可能去掉这个设置。

  1. 如果你是存文件,并且只是应用内自己访问,可以将文件存在私有目录下,可以使用 getExternalFilesDirgetExternalCacheDir 等方法, 以下我列出了几种常用的私有目录文件访问方式获取到的对应路径:
  2. </
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值