【发布时间】:2017-08-30 12:49:01
【问题描述】:
private List<PDFFileDetails> getPdfFilesFromDevice(Context context) {
List<PDFFileDetails> listOfDirectories = new ArrayList<>();
ContentResolver cr = context.getContentResolver();
Uri uriExternal = MediaStore.Files.getContentUri("external");
Uri uriInternal = MediaStore.Files.getContentUri("internal");
String[] projection = null;
String sortOrder = null; // unordered
// only pdf
String selectionMimeType = MediaStore.Files.FileColumns.MIME_TYPE + "=?";
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("pdf");
String[] selectionArgsPdf = new String[]{mimeType};
在这里,我从我的内部存储中获取所有 pdf,而不是从外部 sdcard 首先我尝试不使用 sdcard,然后我插入了 sdcard,但没有结果来自 sdcard
Cursor allPdfFilesCursor = cr.query(uriExternal, projection, selectionMimeType, selectionArgsPdf, sortOrder);
if (allPdfFilesCursor != null && allPdfFilesCursor.getCount() != 0) {
allPdfFilesCursor.moveToFirst();
do {
int dataColumn = allPdfFilesCursor.getColumnIndex(MediaStore.Files.FileColumns.DATA);
String filePath=allPdfFilesCursor.getString(dataColumn);
} while (allPdfFilesCursor.moveToNext());
}
没有来自内部或外部存储的结果
allPdfFilesCursor = cr.query(uriInternal, projection, selectionMimeType, selectionArgsPdf, sortOrder);
if (allPdfFilesCursor != null && allPdfFilesCursor.getCount() != 0) {
allPdfFilesCursor.moveToFirst();
do {
int dataColumn = allPdfFilesCursor.getColumnIndex(MediaStore.Files.FileColumns.DATA);
String filePath=allPdfFilesCursor.getString(dataColumn);
} while (allPdfFilesCursor.moveToNext());
}
if (allPdfFilesCursor != null && !allPdfFilesCursor.isClosed()) {
allPdfFilesCursor.close();
}
return listOfDirectories;
}
【问题讨论】:
-
您找到解决方案了吗?如果是这样,请在这里分享。提前致谢
标签: android pdf android-contentprovider mediastore