问题:新拍摄的照片没有出现在加载了MediaStore.Images.Media.EXTERNAL_CONTENT_URI的游标中
只有当我重新安装应用程序并强制重新扫描时,问题才会消失。
我该怎么解决这个问题?我希望立即拍摄的每一张照片都会出现在我的光标中?
我已经做了一些研究,但是不要告诉我startactivity解决方案的内容值,如下所示
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
这不起作用,因为我又有了自己的相机,我没有使用默认的手机相机活动。
我也试过
getContentResolver().notifyChange(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null);
这也行不通。
有人能帮忙吗?
谢谢
发布于 2013-08-22 08:07:39
您只需要发送一个广播"ACTION_MEDIA_SCANNER_SCAN_FILE“,以便媒体可以扫描您保存的图像。
Intent mediaScanIntent = new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
mediaScanIntent.setData(uri);
sendBroadcast(mediaScanIntent);
只需设置新创建的映像的uri。:)
发布于 2013-08-22 07:31:42
是的,您是对的,您需要向MediaStore提供新创建的文件。
MediaScannerConnection会帮你的。
MediaScannerConnection为应用程序将新创建或下载的媒体文件传递给媒体扫描服务提供了一种方法。媒体扫描服务将从文件中读取元数据,并将该文件添加到媒体内容提供程序。MediaScannerConnectionClient为媒体扫描服务提供一个接口,以便将新扫描文件的Uri返回给MediaScannerConnection类的客户端。
发布于 2015-05-26 17:43:28
就目前而言,这是可行的:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + outPath)));
}else{
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + outPath)));
}
https://stackoverflow.com/questions/18374140
复制相似问题