Я нашел эту справку
Если вы хотите иметь SQL базу данных, то лучше всего использовать room
С Android 11 вы будете вынуждены использовать объемное хранилище. Старый способ запроса разрешений не будет работать.
Вы можете использовать что-то вроде этого. Пользователь сможет увидеть файл для себя с помощью стандартного Файлового приложения
//opens the File App that is already installed on every Android Device
//it will always save the file in the download folder
//use this start the activity for the File App
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT)
intent.addCategory(Intent.CATEGORY_OPENABLE)
intent.type = "text/plain"
//user can change the name how he likes later on
//this is just a suggestion for the name
intent.putExtra(Intent.EXTRA_TITLE, "myCSVFile.csv")
startActivityForResult(intent, 1)
Когда пользователь нажмет OK в Файловом приложении
override fun onActivityResult(request:Int, result:Int, resultData: Intent?){
if(resultData != null && resultData.data != null){
//this is the URI for the file that the File App has created
val fUri = resultData.data!!
//get the file descriptor
val pfd: ParcelFileDescriptor = applicationContext.contentResolver.openFileDescriptor(fUri, "w")!!
//create write stream
val bW = FileOutputStream(pfd.fileDescriptor)
//first line of csv file
bW.write(csvHeader.toByteArray())
//best if these 2 lines are in a loop
//the string should not be bigger then 100bytes,
//I have run into exceptions where it said the parcel size was to big
bW.write("\n something something something".toByteArray())
bW.flush()
bW.close()
}
}