Android 部分机型裁剪正常完成 但是 resultCode 一直返回0 data一直返回null
这里裁剪完成,在图库中能看到正常看到裁剪后的图片
但是resultCode 一直返回0 data一直返回null
resultCode: -1 表示成 0 表示取消了操作
这种情况下 需要检查一下发起该裁剪任务activity或者所属的activity (fragment 运行必须依赖activity)
注意注意注意 launchMode 一定不要设置为 singleInstance
launchMode直接修改为默认 裁剪回调就正常了
其他需要注意的地方 选择图库 进行裁剪时需要注意 图库的图片地址为公共地址
裁剪任务不要临时授权 如果授权的话 部分手机会出错
我这里测试了 miui临时授权写权限,会导致出错
使用拍照 进行裁剪时 返回的地址为私有地址
则需要临时授权,否则无法裁剪
临时授权代码如下
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
裁剪目录输出目录的设置
使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) 路径
出现很多问题,仅在模拟器测试成功 直接pass掉了
我这里使用的如下方法返回的uri 传一个文件名就可以 比如 name = "123.jpg"
private fun getCropUri(name: String): Uri? { val values = ContentValues() values.put(MediaStore.Images.Media.DISPLAY_NAME, name) values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg") values.put(MediaStore.Images.Media.DATE_MODIFIED, System.currentTimeMillis() / 1000) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { values.put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_DCIM) } return requireContext().contentResolver.insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values ) }
val cropUri = getCropUri("crop_face_${System.currentTimeMillis()}.jpg")
intent.putExtra(MediaStore.EXTRA_OUTPUT,cropUri)
图片裁剪异常问题
分类:
android
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端