获取手机相册里所有会显示的图片,并不是手机所有的图片
String selection = MediaStore.Images.Media.BUCKET_ID + " = ?";
String bucketId = String.valueOf(id);
String sort = MediaStore.Images.Media._ID + " DESC";
String[] selectionArgs = {bucketId};
Uri images = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cursor c;
if (!bucketId.equals("0")) {
c = resolver.query(images, null, selection, selectionArgs, sort); //查询带条件
} else {
c = resolver.query(images, null, null, null, sort);//查询所有
}
ArrayList<Uri> imageUris = new ArrayList<>();
if (c != null) {
try {
if (c.moveToFirst()) {
//c.getString(c.getColumnIndex(MediaStore.Images.Media.DATA) 完整路径名
//c.getString(c.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME) 文件名
setPathDir(c.getString(c.getColumnIndex(MediaStore.Images.Media.DATA)),
c.getString(c.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME)));
do {
String mimeType = c.getString(c.getColumnIndex(MediaStore.Images.Media.MIME_TYPE));
//获取文件夹名 (DCIM,Camera) 不是完整路径
String folderName = c.getString(c.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME));
if (isExceptMemeType(exceptMimeTypeList, mimeType)
|| isNotContainsSpecifyFolderList(specifyFolderList, folderName)) continue;
int imgId = c.getInt(c.getColumnIndex(MediaStore.MediaColumns._ID));
//获取 uri
Uri path = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "" + imgId);
imageUris.add(path);
} while (c.moveToNext());
}
c.close();
} catch (Exception e) {
if (!c.isClosed()) c.close();
}
}
return imageUris;
private void setPathDir(String path, String fileName) {
pathDir = path.replace("/" + fileName, ""); //获取文件路径
}
相册显示的图片 需要加入以下代码
String path = "你图片的完整路径";
// 其次把文件插入到系统图库
// try {
// MediaStore.Images.Media.insertImage(getContext().getContentResolver(), path, path.substring(path.lastIndexOf("/")+1), null);
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// }
//需要通知相册更新了
getContext().sendBroadcast(