我的情况非常相似,我使用了与您相同的方法,但不是像您一样设置数据,而是这样做了。画廊打开,我可以像你问的那样刷照片
Uri uri = GalleryPreviewButton.getImageContentUri(getContext());
Intent galeryIntent = new Intent(Intent.ACTION_VIEW );
galeryIntent.setDataAndType(uri, "image/*");
this.startActivity(galeryIntent);
这是我用来从文件中获取 Uri 的方法;
public static Uri getImageContentUri(Context context) {
String filePath = CURRENT_PATH;
Cursor cursor = context.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Images.Media._ID },
MediaStore.Images.Media.DATA + "=? ",
new String[] { filePath }, null);
if (cursor != null && cursor.moveToFirst()) {
int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));
cursor.close();
return Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "" + id);
} else {
try{
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA, filePath);
return context.getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
} catch (Exception e){
return null;
}
}
}