@Wade2k

Почему не работает Mediastore.Files для pdf файлов на эмуляторе?

Добрый!

Хочу в приложении для просмотра pdf получить список всех pdf файлов на устройсте.

Делаю это таким кодом:

private fun getPdf() {
        val projection = arrayOf(
                MediaStore.Files.FileColumns._ID,
                MediaStore.Files.FileColumns.MIME_TYPE,
                MediaStore.Files.FileColumns.DATE_ADDED,
                MediaStore.Files.FileColumns.DATE_MODIFIED,
                MediaStore.Files.FileColumns.DISPLAY_NAME,
                MediaStore.Files.FileColumns.TITLE,
                MediaStore.Files.FileColumns.SIZE)

        val mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("pdf")
        val whereClause = MediaStore.Files.FileColumns.MIME_TYPE + " IN ('" + mimeType + "')"
        val orderBy = MediaStore.Files.FileColumns.SIZE + " DESC"
        val cursor: Cursor? = contentResolver.query(MediaStore.Files.getContentUri("external"),
                projection,
                whereClause,
                null,
                orderBy)

        val idCol = cursor!!.getColumnIndexOrThrow(MediaStore.Files.FileColumns._ID)
        val mimeCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.MIME_TYPE)
        val addedCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATE_ADDED)
        val modifiedCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATE_MODIFIED)
        val nameCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DISPLAY_NAME)
        val titleCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.TITLE)
        val sizeCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.SIZE)

        if (cursor.moveToFirst()) {
            do {

                val fileUri: Uri = Uri.withAppendedPath(MediaStore.Files.getContentUri("external"), cursor.getString(idCol))
                val mimeType = cursor.getString(mimeCol)
                val dateAdded = cursor.getLong(addedCol)
                val dateModified = cursor.getLong(modifiedCol)
                val nameFile = cursor.getString(nameCol)

                if (nameFile!=null) {

                    mPdfFiles.add(PdfFile(nameFile,fileUri))
                    mPdfAdapter.notifyDataSetChanged()

                }

            } while (cursor.moveToNext())
        }
    }


На реальных устройствах он показывает скачанные pdf файлы, а на эмуляторе пусто.
На эмуляторе находит только медиа файлы - jpg, png и тд. Pdf не видит.

Что можно сделать?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы