我们目前正在开发在受管设备企业环境中运行的android应用。
现在,我们尝试使用以下代码通过意图选择图像:
val galleryPickerIntent = Intent(Intent.ACTION_PICK)
galleryPickerIntent.type = "image/*"
galleryPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
fragment.startActivityForResult(galleryPickerIntent, SELECT_IMAGES_INTENT_RESULT)
[随后,我们通过intent.clipData中的contentResolver处理图像,该图像为我们提供了这样的URL:/storage/emulated/0/DCIM/Camera/IMG_20200130_113056.jpg
例如,当我们尝试从其他配置文件访问此URL时,该应用程序正在工作配置文件中运行,但用于选择的图库应用程序位于私有配置文件中,然后尝试访问该图像URL将导致访问拒绝例外。
是否有解决此问题的正确方法?理想情况下,我们允许将工作资料和私人应用程序用于图像选择。
我找到了答案,我们没有正确解析图像。我们从uri中提取了filePath,而不是直接在其上使用contentResolver.openInputStream解决了我们的问题。