Java Android gallery在操作\u图像\u捕获后未更新
我正在使用Java Android gallery在操作\u图像\u捕获后未更新,java,android,android-intent,photo,mediastore,Java,Android,Android Intent,Photo,Mediastore,我正在使用MediaStore.ACTION\u IMAGE\u CAPTURE使用MediaStore.EXTRA\u OUTPUT指向存储所有其他照片/视频文件的DCIM/Camera目录的Uri 照片文件已成功拍摄,我可以使用ES文件资源管理器查看它,并可以在我的应用程序中查看它。但是,当我使用Intent.ACTION\u PICK Intent selectPictureIntent = new Intent(Intent.ACTION_PICK); selectPic
MediaStore.ACTION\u IMAGE\u CAPTURE
使用MediaStore.EXTRA\u OUTPUT
指向存储所有其他照片/视频文件的DCIM/Camera目录的Uri
照片文件已成功拍摄,我可以使用ES文件资源管理器查看它,并可以在我的应用程序中查看它。但是,当我使用Intent.ACTION\u 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);
此处发生的情况:(为什么使用LocalBroadcastManager?LocalBroadcastManager只能在应用程序内部发送广播数据。请尝试使用
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, _outputMediaUri);
sendBroadcast(intent);
Gallery始终侦听URI更改。将文件事件广播到Gallery后,Gallery中存储的数据将被更新。为什么使用LocalBroadcastManager?LocalBroadcastManager只能在应用程序内部发送广播数据。请尝试使用
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, _outputMediaUri);
sendBroadcast(intent);
Gallery始终侦听URI更改。文件事件广播到Gallery后,Gallery中存储的数据将被更新。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())));
}
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())));
}
是的,这就是问题所在。这段代码是在一个片段中,因此它最终成为
getActivity().sendBroadcast(intent)
。谢谢。请看一下这个问题是的,这就是问题所在。这段代码是在一个片段中,因此它最终成为getActivity().sendBroadcast(intent)
。谢谢。请看一下这个问题