我正在使用MediaStore.ACTION_IMAGE_CAPTURE
拍摄MediaStore.EXTRA_OUTPUT
的照片,指向存储所有其他照片/视频文件的DCIM /相机目录的Uri
。
照片文件已成功拍摄,我可以使用ES文件资源管理器查看它,并可以在我的应用程序中查看它。但是,当我使用Intent.ACTION_PICK
Intent selectPictureIntent = new Intent(Intent.ACTION_PICK);
selectPictureIntent.setType("image/*");
我已经阅读了有关使用
返回图片后更新图库的其他主题sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
以及
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, _outputMediaUri);
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(intent);
这里发生了什么:(
答案 0 :(得分:4)
为什么使用LocalBroadcastManager? LocalBroadcastManager只能在您的应用程序内发送广播数据。尝试使用
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, _outputMediaUri);
sendBroadcast(intent);
Gallery始终监听URI更改。文件事件广播到图库后,将更新存储在图库中的数据。
答案 1 :(得分:0)
它也可能与KITKAT构建版本有关..确保您可以使用此代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Intent mediaScanIntent = new Intent(
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri contentUri = Uri.fromFile(out); \\out is your output file
mediaScanIntent.setData(contentUri);
this.sendBroadcast(mediaScanIntent);
} else {
sendBroadcast(new Intent(
Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
}