Android 4.4(KitKat)外置 SD 卡写入权限被拒绝
问题背景
Android 4.4(KitKat)对外置 SD 卡做了严格限制——所有第三方 App 都不能写入外置 SD 卡,除非 App 自己的私有目录。这是 Android 系统的设计决策,不是 tTorrent 的 bug。
官方说明可参考 Android 平台讨论组的讨论和相关 stackexchange 解答。
症状
- tTorrent 设置里选了外置 SD 卡作为保存路径
- 下载时报 permission denied 或无法开始
解决方案(有 root)
已 root 的设备可以通过安装 SDFix 或手动改权限配置,恢复 App 对外置 SD 卡的写权限。但 root 涉及系统级操作,存在风险,建议先了解清楚再决定。
解决方案(无 root,推荐)
在 SD 卡上手动创建一个目录,让 tTorrent 写 App 自己的私有数据路径:
- 用文件管理器在 SD 卡根目录创建文件夹
- Lite 版:
/Android/data/hu.tagsoft.ttorrent.lite - Pro 版:
/Android/data/hu.tagsoft.ttorrent.noads
- tTorrent 设置里把保存路径指向这个目录
- 这样就能写了
注意:这个目录是 App 的私有目录,卸载 App 时里面的文件会被系统一起删除。大文件长期存放不建议走这个方案。
更好的方案(升级系统)
如果设备支持升级到 Android 5.0+,升级是最干净的解决方式——Lollipop 起 Android 恢复了 App 对外置 SD 卡的受控写入能力(通过 Storage Access Framework 授权),tTorrent 完整支持。