修改头像,本地相册选择裁剪兼容性问题
直接上问题:选择相册图片提示"保存时发生错误,保存失败" ,或者"保存失败",或者无提示返回
异常机型:
红米 K30 、小米 k30、华为 nova 5 pro、华为 荣耀8x
问题原因:
可能原因
①红米手机机型获取 Build.BRAND.toLowerCase() 判断时只与"xiaomi"做了判断,红米手机返回的是"redmi",所以应该为contain(“mi”)
②红米手机裁剪后存储路径选择问题
可能没有DIRECTORY_PICTURES所以可以选择DIRECTORY_DCIM目录
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
改为
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
③如果使用的第三方裁剪,是无法访问我们本机的私有目录,所以裁剪后要存储到外部存储目录
参考
String picName = Calendar.getInstance().getTimeInMillis() + ".jpg";
//保存裁剪后的图片
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
cropFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), picName);
} else {
cropFile = new File(getExternalCacheDir(), picName);
}