Я пользуюсь Samsung a51. Уровень API 10
Я сохраняю другой тип файла в папке для скачивания, например - изображение, видео, песня, zip
код
val filename = "exampleFileName.jpg"
val now = System.currentTimeMillis() / 1000
val values = ContentValues().apply {
put(MediaStore.Downloads.DATE_ADDED, now)
put(MediaStore.Downloads.DATE_MODIFIED, now)
put(MediaStore.Downloads.DISPLAY_NAME, filename)
put(MediaStore.Downloads.TITLE, filename.stripExtension())
put(MediaStore.Downloads.SIZE, contentSize)
put(MediaStore.Downloads.RELATIVE_PATH, "Download/my-appname")
put(MediaStore.Downloads.IS_PENDING, 1)
}
val uri: Uri? = null
waitForExecution(handler) {
uri = resolver.insert(
MediaStore.Downloads.getContentUri(volume),
values
)
}
val descriptor = resolver.openFileDescriptor(uri!!, "w")
if (descriptor != null) {
val outputStream = FileOutputStream(descriptor.fileDescriptor)
val written = writeFile(outputStream)
if(written){
values.clear()
values.put(MediaStore.Downloads.IS_PENDING, 0)
if(mimeType != null) values.put(MediaStore.Downloads.CONTENT_TYPE, mimeType)
waitForExecution(handler) { // ui thread
resolver.update(uri!!, values, null, null)
// android says that content resolver automatically notify to system don't need to send brodcast.
val intent = Intent(Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE))
context.sendBroadcast(intent)
}
}else{
dontThrow { resolver.delete(uri!!, null, null) }
}
} else {
v("got null descriptor.")
}
Все отлично файл записан успешно. файл отображается в Диспетчер файлов
, но проблема не отображается в галерее. и на некоторых других мобильных телефонах, также не работающих
он также показывает в Mx player
есть ли кто-нибудь, чтобы уведомить, что файл добавлен
или android 10 ошибок?