【译】如何在 Android 5.0 上获取 SD卡 的读写权限

本文翻译自StackOverflow上的问答,详细介绍了在Android 5.0上如何使用新API获取SD卡读写权限,包括如何检测权限、在多用户设备上的处理、权限撤销以及在KitKat上的兼容性问题等。

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

因为最近项目需要,涉及到 SD卡 的读写操作,然而申请

<!-- 读写权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

权限只能对 SD卡 进行读操作,而没有写权限,也就是说,Android 在某个版本中对 SD卡 的读写权限进行了限制。后在 StackoverFlow 上找到一篇相关问答,解了心中疑惑。在此,对该问答进行翻译并附上相关 Demo,已做备忘。

原文地址:How to use the new SD card access API presented for Android 5.0 (Lollipop)?

背景

在 Android 4.4(KitKat) 中,Google 对 SD卡 的访问已经做了严格的限制。
在 Android 5.0(Lollipop) 中,开发者可以使用 新API 要求用户对某个指定的文件夹进行访问授权,详见:Android 4.4 Samsung Galaxy s4 external sd card is now read only, Remove or option to edit non app files.(译者注:开头挺搞笑的,都是开发者吐槽 Google 对 SD卡 做了限制)

问题

上述文章中有两个链接:

  1. https://android.googlesource.com/platform/development/+/android-5.0.0_r2/samples/Vault/src/com/example/android/vault/VaultProvider.java#258

    此链接中代码看起来更像是内部示例(可能会在以后的 API Demo 中出现),但是真的很难理解这部分代码的意图。
  2. http://developer.android.com/reference/android/suppo

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值