Android 11中对于应用程序的文件和文件夹访问进行了更严格的控制,开发者需要请求特定的权限才能访问特定的文件和文件夹。以下是创建文件夹的示例代码:
val folderName = "MyFolder"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val values = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, folderName)
put(MediaStore.MediaColumns.MIME_TYPE, "application/vnd.android.package-archive")
put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOCUMENTS + "/$folderName")
}
val uri = contentResolver.insert(MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY), values)
} else {
val folder = File(Environment.getExternalStorageDirectory(), folderName)
if (!folder.exists()) {
folder.mkdir()
}
}
该代码旨在创建一个名为' MyFolder ”的文件夹,并在Android 11及以上版本中将其存储在Documents目录中。在较旧的Android版本中,文件夹将存储在外部存储的根目录中。
请注意,您需要在清单文件中添加WRITE_EXTERNAL_STORAGE权限以确保代码可以访问外部存储。