Добрый!
Хочу в приложении для просмотра 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 не видит.
Что можно сделать?