存储访问框架(Storage Access Framework,SAF)是一种用于在Android设备上访问存储资源的API。它提供了一种统一的方式来管理用户的存储内容,包括文件和文件夹。
使用存储访问框架创建文件夹的步骤如下:
androidx.documentfile.provider.DocumentFile
和android.provider.DocumentsContract
。requestPermissions()
方法来请求权限,并在回调方法中处理用户的响应。Intent
来打开存储访问框架。可以通过创建一个Intent
对象,并设置Intent.ACTION_OPEN_DOCUMENT_TREE
作为动作来实现。然后,使用startActivityForResult()
方法启动该Intent
。onActivityResult()
方法中处理返回的结果,并使用该URI来创建文件夹。DocumentFile.fromTreeUri()
方法将URI转换为DocumentFile
对象。然后,使用createDirectory()
方法在所选文件夹下创建一个新的文件夹。以下是存储访问框架创建文件夹的示例代码:
// 导入必要的类和库
import androidx.documentfile.provider.DocumentFile;
import android.provider.DocumentsContract;
// 请求存储访问权限
private static final int REQUEST_CODE_STORAGE_PERMISSION = 1;
private void requestStoragePermission() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_CODE_STORAGE_PERMISSION);
} else {
openStorageAccessFramework();
}
}
// 打开存储访问框架
private static final int REQUEST_CODE_OPEN_DOCUMENT_TREE = 2;
private void openStorageAccessFramework() {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, REQUEST_CODE_OPEN_DOCUMENT_TREE);
}
// 处理返回结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_OPEN_DOCUMENT_TREE && resultCode == RESULT_OK) {
Uri treeUri = data.getData();
createFolder(treeUri, "New Folder");
}
}
// 创建文件夹
private void createFolder(Uri treeUri, String folderName) {
DocumentFile pickedDir = DocumentFile.fromTreeUri(this, treeUri);
DocumentFile newFolder = pickedDir.createDirectory(folderName);
if (newFolder != null) {
// 文件夹创建成功
} else {
// 文件夹创建失败
}
}
这是一个基本的示例,你可以根据自己的需求进行修改和扩展。在腾讯云的产品中,与存储访问框架相关的产品包括对象存储(COS)和文件存储(CFS)。你可以根据具体的需求选择适合的产品。
领取专属 10元无门槛券
手把手带您无忧上云