随着Android系统的不断更新,开发者们面临着新的挑战,特别是在文件访问权限方面。自从Android 11(API 30)开始,Google对文件访问进行了严格的限制,导致许多开发者需要重新思考如何在应用中访问用户的文件系统。今天,我们将探讨如何使用Storage Access Framework (SAF) 解决这些问题,并提供一个实际的例子来帮助大家理解。
为什么需要SAF?
在Android 11及以上版本,应用无法直接访问外部存储的根目录或某些特定的文件夹(如下载目录),这意味着传统的File
类不再适用于这些情况。SAF提供了一种统一的方法来访问用户选择的目录,允许用户明确授权应用访问特定文件或文件夹。
启动SAF的基本步骤
首先,你需要通过Intent.ACTION_OPEN_DOCUMENT_TREE
启动SAF的目录选择界面:
val intent = Intent(</