Sau*_*age 6 android mediastore
我正在使用媒体商店在回收站视图中列出 pdf。它在android 10 之前都可以正常工作,也可以在 android 11 中运行,但只能在 android 10 中运行。
我也在requestLegacyExternalStorage=true清单中设置了。
在build.gradle
compileSdkVersion 29
buildToolsVersion "30.0.2"
minSdkVersion 21
targetSdkVersion 29
Run Code Online (Sandbox Code Playgroud)
获取PDF.kt
class FetchPdf(private val applicationContext: Context) {
private val arrayList = ArrayList<Pdf>()
fun getPdf(): ArrayList<Pdf> {
val collection = MediaStore.Files.getContentUri("external")
val projection = arrayOf(
MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATE_MODIFIED,
MediaStore.Files.FileColumns.DISPLAY_NAME,
MediaStore.Files.FileColumns.SIZE,
MediaStore.Files.FileColumns.DATA
)
val mimeType = "application/pdf"
val whereClause = MediaStore.Files.FileColumns.MIME_TYPE + " IN ('" + mimeType + "')"
val orderBy = MediaStore.Files.FileColumns.DATE_MODIFIED + " DESC"
val cursor: Cursor? = applicationContext.contentResolver.query(
collection,
projection,
whereClause,
null,
orderBy
)
if (cursor != null) {
val idCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns._ID)
val nameCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DISPLAY_NAME)
val sizeCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.SIZE)
val dataCol = cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATA)
if (cursor.moveToFirst()) {
do {
val fileUri: Uri = Uri.withAppendedPath(
MediaStore.Files.getContentUri("external"),
cursor.getString(idCol)
)
val name = cursor.getString(nameCol)
val data = cursor.getString(dataCol)
val size = cursor.getLong(sizeCol)
if (size == 0L) continue
arrayList.add(Pdf(name, fileUri.toString(), data))
} while (cursor.moveToNext())
}
cursor.close()
}
return arrayList
}
}
Run Code Online (Sandbox Code Playgroud)
问题仅发生在 android 10 中。在 android 11 中工作正常
cursor.moveToFirst() 返回 false
它正在返回 arrayList 大小 0
我尝试过的:
我试图改变
MediaStore.Files.FileColumns.DATA到MediaStore.Files.FileColumns.RELATIVE_PATH不工作
我尝试递归遍历每个文件夹然后它的工作,但我想要
MediaStore解决方案
任何帮助,将不胜感激。
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |