Android P及更高版本调用相机和相册返回图片

Android P 及更高版本中,由于隐私和权限的限制,调用相机和相册返回图片的方式有了大的变化。你不能直接通过文件路径获取图片,而是需要通过 Uri 来操作。所以,理解如何获取这个 Uri 并将其转换成可以显示的图片就变得尤为重要。

启动相机时,使用 Intent(MediaStore.ACTION_IMAGE_CAPTURE) 就可以调用相机,拍摄完成后,系统会返回一个 Uri。在 onActivityResult() 方法中,你可以获取这个 Uri 并通过第三方库如 Glide 来显示它,效果棒。也可以使用 takePersistableUriPermission() 来权限,保证应用访问图片的持久化权限。

从相册选图片时,使用 Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) 就可以了。返回的 Uri 同样可以通过 Glide 等工具加载展示。记住,Android P 中的 Uri 权限问题不可忽视。

如果你有需要进一步图片的需求,可以通过 ContentResolverInputStream 来安全地转换 Uri 为 Bitmap。虽然操作稍微复杂,但其实这些步骤都容易理解,只要你按照流程来,效果稳定。

,随着 Android 版本的迭代,适应这些新变化是必须的。如果你在高版本 Android 中调用相机或相册,务必了解权限和 Uri 的方式,确保应用的兼容性和用户体验。

rar 文件大小:504.97KB