花粉俱乐部  logo 花粉俱乐部  因为热爱
搜索 |
[其它]

相机拍摄照片无法保存

[复制帖子标题和链接]

10750

huafen179139962  新学乍练  发表于 2019-12-30 16:11:16 来自:浏览器

最新回复 2019-12-30 16:11:16

EMUI9/10都出现这个问题。第三方app使用 ContentResolver  的写入图片后,导致项目拍摄照片无法存储,监听ContentObserver 发现相机拍摄照片,刚写入数据库就被删除。
具体写入方法:
  //创建ContentValues对象,准备插入数据
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, "测试标题");
contentValues.put(MediaStore.Images.Media._ID, System.currentTimeMillis());
contentValues.put(MediaStore.Images.Media.DESCRIPTION, "描述信息");
contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
//插入数据,返回所插入数据对应的Uri
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
OutputStream outputStream = null;
boolean
flag = false;
try
{
   
//获取刚插入的数据的Uri对应的输出流
   
outputStream = getContentResolver().openOutputStream(uri);
   
//将bitmap图片保存到Uri对应的数据节点中
   
flag = bitmap.compress(Bitmap.CompressFormat.JPEG, 50, outputStream);
   
//图片会保存到sd卡的pcitures目录下
   
outputStream.close();
} catch (Exception e) {
    DebugLog.e(
TAG, "", e);
}
修改增加 outputStream.flush();去除 MediaStore.Images.Media._ID, 设置不会导致这个问题,但是已存在问题的手机,清除相机、图库的数据都无法恢复。
您需要登录后才可以回帖 登录 | 立即注册

EMUI10.0

工具下载

  • 花粉客户端官方

    Make it Possible

华为软件专区

关注花粉俱乐部

粤ICP备19015064号-4|备案主体编号:44201919072182| 粤公网安备 44190002003939号

Copyright © 2012-2020 华为终端有限公司 版权所有

快速回复 返回顶部 返回列表