【发布时间】:2017-08-06 22:35:45
【问题描述】:
我正在创建一个应用程序,我想在列表视图中列出所有 pdf、docx、xlsx、pptx、txt。
这就是我到目前为止所做的。
Uri uri = MediaStore.Files.getContentUri("external");
String[] projection ={ MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATA, MediaStore.Files.FileColumns.TITLE, MediaStore.Files.FileColumns.MIME_TYPE} ;
String selectionMimeType = MediaStore.Files.FileColumns.MIME_TYPE + "=?";
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("txt");
String[] selectionArgsPdf = new String[]{ mimeType};
String sortOrder = null;
Cursor allPdfFiles = getContentResolver().query(uri, projection, selectionMimeType, selectionArgsPdf, sortOrder);
if (allPdfFiles.moveToFirst()) {
do {
ImageViewInfo newVVI = new ImageViewInfo();
int id = allPdfFiles.getInt(allPdfFiles.getColumnIndex(MediaStore.Files.FileColumns._ID));
newVVI.filePath = allPdfFiles.getString(allPdfFiles.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATA));
newVVI.title = allPdfFiles.getString(allPdfFiles.getColumnIndexOrThrow(MediaStore.Files.FileColumns.TITLE));
newVVI.mimeType = allPdfFiles.getString(allPdfFiles.getColumnIndexOrThrow(MediaStore.Files.FileColumns.MIME_TYPE));
ImageRows.add(newVVI);
} while (allPdfFiles.moveToNext());
allPdfFiles.close();
}
我在获取 docx、xlsx、pptx 等其他文件格式时遇到问题,例如当我尝试更改它时 String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("docx"); 它总是返回 null
但是当它是getMimeTypeFromExtension("pdf") 或getMimeTypeFromExtension("txt") 时它工作正常。
getMimeTypeFromExtension()支持的文件格式有哪些?
我该怎么办?你能指出我在哪里做错了吗?如果可能的话,你能建议一个解决方案。先感谢您!我真的很感激。
【问题讨论】:
标签: android listview mediastore