首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓新拍摄的自定义相机照片不出现在画廊(媒体商店)

安卓新拍摄的自定义相机照片不出现在画廊(媒体商店)
EN

Stack Overflow用户
提问于 2013-08-22 07:25:38
回答 3查看 2.9K关注 0票数 1
  1. 在我的应用程序中,我最初从图片库加载所有图像,即(MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
  2. 用户可以通过我的应用程序拍照,但我有一个自定义相机,即我不使用默认的手机相机拍照,我有自己的表面视图,我直接处理相机对象,并处理相机图片。我把这个图像保存在一个自定义文件夹中。
  3. 当用户返回我的应用程序时,我希望新拍摄的照片出现在我的画廊里。

问题:新拍摄的照片没有出现在加载了MediaStore.Images.Media.EXTERNAL_CONTENT_URI的游标中

只有当我重新安装应用程序并强制重新扫描时,问题才会消失。

我该怎么解决这个问题?我希望立即拍摄的每一张照片都会出现在我的光标中?

我已经做了一些研究,但是不要告诉我startactivity解决方案的内容值,如下所示

代码语言:javascript
运行
复制
 startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

这不起作用,因为我又有了自己的相机,我没有使用默认的手机相机活动。

我也试过

代码语言:javascript
运行
复制
 getContentResolver().notifyChange(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null);

这也行不通。

有人能帮忙吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-22 08:07:39

您只需要发送一个广播"ACTION_MEDIA_SCANNER_SCAN_FILE“,以便媒体可以扫描您保存的图像。

代码语言:javascript
运行
复制
 Intent mediaScanIntent = new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
 mediaScanIntent.setData(uri);
 sendBroadcast(mediaScanIntent);

只需设置新创建的映像的uri。:)

票数 7
EN

Stack Overflow用户

发布于 2013-08-22 07:31:42

是的,您是对的,您需要向MediaStore提供新创建的文件。

MediaScannerConnection会帮你的。

MediaScannerConnection为应用程序将新创建或下载的媒体文件传递给媒体扫描服务提供了一种方法。媒体扫描服务将从文件中读取元数据,并将该文件添加到媒体内容提供程序。MediaScannerConnectionClient为媒体扫描服务提供一个接口,以便将新扫描文件的Uri返回给MediaScannerConnection类的客户端。

票数 0
EN

Stack Overflow用户

发布于 2015-05-26 17:43:28

就目前而言,这是可行的:

代码语言:javascript
运行
复制
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)));

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18374140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档