Android Q сохранение мультимедийных файлов, не отображаемых в Gallary - PullRequest
1 голос
/ 23 марта 2020

Я пользуюсь 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 ошибок?

1 Ответ

0 голосов
/ 23 марта 2020

Проблема решена установкой mimeType при вставке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...