Android 调用系统拍照后无法查看图片

Q

在开发项目的时候,本打算使用知乎的Matisse进行图片选取以及拍照,但是在实际操作中碰到了这样一件事

  • 能获取到相机APP拍照的图片
  • 调用系统相机拍照后在选取图片处没有该图

这很困扰,WX,QQ等应用都能拍了照再选取图片的时候看到拍照的图,但是这个不行,我以为是库的问题,我尝试了下全部都是原生的方法。

  • 调用相机
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
File tempFile = new File(Environment.getExternalStorageDirectory() + "/pic", "temp.png");
if (!tempFile.getParentFile().exists()) {
    tempFile.getParentFile().mkdir();
}
Uri uri = FileProvider.getUriForFile(MainActivity.this, "com.cmiot.demo.fileprovider", tempFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, 100);//携带请求码
  • 选取图片
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 101);

然后先调用了图片,看了一下存在的图,然后调用相机进行拍照,拍完了返回再选取图片,结果图册里面依然看不到该图,只能在文件夹里对图片进行移动才能看到,为啥?求解。。

A

通知媒体库更新数据库,让媒体库对图片/视频一类的媒体文件重新处理就好了。

//Uri的地址scheme需要为file----->file://path
 sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.fromFile(new File("此处为file的path地址"))));

一开始没想明白,后面其实就是系统媒体库更新,更新了就好了。
还有其他方法(自己以前都用过,感觉好二啊)

MediaStore.Images.Media.insertImage(contentResolver,bitmap, null,null)

Mark一下,免得忘了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值