Исходя из документов, используйте DCIM / ... для RELATIVE_PATH, где ... это то, чем будет ваш пользовательский подкаталог. Итак, вы должны получить что-то вроде этого:
val resolver = context.contentResolver
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, "CuteKitten001")
put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg")
put(MediaStore.MediaColumns.RELATIVE_PATH, "DCIM/PerracoLabs")
}
val uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)
resolver.openOutputStream(uri).use {
// TODO something with the stream
}
Обратите внимание, что поскольку RELATIVE_PATH является новым для API уровня 29, вам нужно будет использовать этот подход на более новых устройствах и использовать getExternalStoragePublicDirectory () на старых.