uniapp在Android 10对公共目录的非媒体文件读取上传失败问题

本文覆盖的问题场景:

  • uniapp的文件IO接口报“targetSdkVersion设置>=29后在Android10+系统设备不支持当前路径。请更改为应用运行路径!具体请看…”错误
  • uni.uploadFile接口上传图片视频正常,上传pdf,doc等非媒体文件报400,但无明确错误原因。
  • Android 10及以上,使用uni或plus读取公共目录文件报错。(或Android 11及以上正常,Android 10报错)

关于外部存储读写

我们知道Android开发中关于存储主要分两大部分:内部存储和外部存储。
内部存储是给每个应用自动授权的一个仅供此应用自身读写的目录,无需申请。
外部存储则包括了:本应用外部存储目录、其他应用外部存储目录、公共目录媒体文件、公共目录非媒体文件四类。

在最初的Android开发中,应用可以随意读取上面的四类文件。

从Android 4.4(API 19)开始,默认授予本应用外部存储目录访问权限,无需申请;但如果需要访问公共目录的媒体文件或非媒体文件,必须申请外部存储的读取权限。(其他应用外部存储目录是申请任何权限也无法访问的)

出于安全考虑,从Android 10开始,对外部存储的读取权限进行了限制,默认只能访问:公共目录媒体文件

但为了方便过度,在Android 10和Android 11下,如果应用在And

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值