Android新拍摄的自定义相机照片未显示在gallery(媒体商店)中
在我的应用程序中,我首先从库中加载所有图像,即(MediaStore.images.Media.EXTERNAL\u CONTENT\u URI)Android新拍摄的自定义相机照片未显示在gallery(媒体商店)中,android,camera,gallery,android-mediascanner,Android,Camera,Gallery,Android Mediascanner,在我的应用程序中,我首先从库中加载所有图像,即(MediaStore.images.Media.EXTERNAL\u CONTENT\u URI) 用户可以通过我的应用程序拍照,但我有一个自定义摄像头,即我不使用默认的手机摄像头拍照,我有自己的表面视图,我直接处理摄像头对象,并处理摄像头图片。我将此图像保存在自定义文件夹中 我希望在用户返回我的应用程序后,新拍摄的照片会显示在我的图库中 问题: 新拍摄的照片不会出现在我加载了MediaStore.Images.Media.EXTERNAL\u C
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
这不起作用,因为我有自己的相机,我没有使用手机上的默认相机活动
我也试过了
getContentResolver().notifyChange(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null);
这也不行
有人能帮忙吗
谢谢是的,您是对的,您需要将新创建的文件提供给MediaStore 我会帮助你的 MediaScannerConnection为应用程序提供了一种通过新 已创建或下载媒体文件到媒体扫描程序服务。这个 媒体扫描服务将从文件中读取元数据并添加 将文件发送到媒体内容提供商。MediaScannerConnectionClient 为媒体扫描程序服务提供返回Uri的接口 将新扫描的文件发送到MediaScannerConnection的客户端 班级
是的,您是对的,您需要向MediaStore提供新创建的文件 我会帮助你的 MediaScannerConnection为应用程序提供了一种通过新 已创建或下载媒体文件到媒体扫描程序服务。这个 媒体扫描服务将从文件中读取元数据并添加 将文件发送到媒体内容提供商。MediaScannerConnectionClient 为媒体扫描程序服务提供返回Uri的接口 将新扫描的文件发送到MediaScannerConnection的客户端 班级
您只需要发送一个广播“ACTION\u MEDIA\u SCANNER\u SCAN\u FILE”,这样mediascanner就可以扫描您保存的图像
Intent mediaScanIntent = new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
mediaScanIntent.setData(uri);
sendBroadcast(mediaScanIntent);
只需设置新创建图像的uri即可。:) 您只需发送一个广播“ACTION\u MEDIA\u SCANNER\u SCAN\u FILE”,以便MEDIA SCANNER可以扫描您保存的图像
Intent mediaScanIntent = new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
mediaScanIntent.setData(uri);
sendBroadcast(mediaScanIntent);
只需设置新创建图像的uri即可。:) 这一方法目前有效:
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)));
}
目前这是可行的:
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)));
}
您需要在哪里添加这些内容?就在:Cursor Cursor=getContentResolver().query(Media.EXTERNAL\u CONTENT\u URI???)之前?需要在哪里添加它?就在:Cursor Cursor=getContentResolver().query(Media.EXTERNAL\u CONTENT\u URI???)之前???