Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android gallery在操作\u图像\u捕获后未更新_Java_Android_Android Intent_Photo_Mediastore - Fatal编程技术网

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)
。谢谢。请看一下这个问题