此类文章的优质博客也有很对,推荐Android手机文件快速扫描我这里主要是记录下文档文件扫描不出的问题:
是由于有些文档不能通过mime_type查询出来的文档 如:.docx .xls .xlsx .rar等,需要在扫描select字段中设置下:
String selection = buildOfficeSelectionStr();
Cursor cursor = contentResolver.query(MediaStore.Files.getContentUri("external"), projection,
selection, null, null);
/**
* 构造文件的查询字段
*
* @return 文件查询的字段
*/
private static String buildOfficeSelectionStr() {
return "(" +
//Excel
MediaStore.Files.FileColumns.DATA + " LIKE '%.xls'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.xlsx'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.xlsm'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.xltx'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.xltm'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.xlam'" +
// PowerPoint
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.pptx'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.pptm'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.potm'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.potx'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.ppsx'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.ppsm'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.sldx'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.thmx'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.ppt'" +
// Word
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.dotm'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.docx'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.docm'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.dotx'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.doc'" +
// Project
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.mpp'" +
// Visio
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.vsd'" +
// Access
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.mdb'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.mde'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.accdb'" +
" or " + MediaStore.Files.FileColumns.DATA + " LIKE '%.rar'" + ")";
}