gpt4 book ai didi

android - 使用 URI 中的 ParcelFileDescriptor 在 Android 中选择图像

转载 作者:太空狗 更新时间:2023-10-29 15:07:12 27 4
gpt4 key购买 nike

我的应用正在创建一个使用 ACTION_GET_INTENT 寻找图像 mime 类型的 Intent。返回后,我将检查数据 Intent 、从 URI 的内容解析器获取游标、检查 uri.toString() 以及处理某些与其他不同的 URI 的过程放在一起进行。例如“content://com.google.android.gallery3d”将是“content://com.google.android.apps.docs.storage”等等。

这变得很痛苦,特别是自从 KitKat 出现并引入了更多要处理的 URI 之后。

但后来我在一些与 SAF 和 KitKat 相关的 Google 开发者页面上看到了这段建议的代码。这似乎完美无缺。我在 KitKat、JB 和 GB 设备上测试了所有已安装的“文件选择器”类应用程序。它从未失败。

**所以我的问题是……这段代码可靠吗?还有什么要注意的吗?如果这是首选方法,为什么会有这么多关于如何处理从选择图像返回的 Intent/URI 的 SO 帖子?

代码示例位于: https://developer.android.com/guide/topics/providers/document-provider.html查看“位图”部分。

try {
final ParcelFileDescriptor parcelFileDescriptor = myContext.getContentResolver().openFileDescriptor(
imageUri, "r");
final FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
final Bitmap bitmap = BitmapFactory.decodeFileDescriptor(fileDescriptor);
parcelFileDescriptor.close();
return bitmap;
} catch (Exception e) {
Log.e(tag, "Failed to Parse Image Uri", e);
throw new Exception("failed to parse image uri");
}

最佳答案

您上面提到的代码是适用于所有设备的完美解决方案。因为我们有一个自动备份文件夹和一些特定的设备 uri 问题。因此,如果您使用 FileDescriptor,它将在所有设备上正常工作。我还使用了相同的代码并在 2.3.3 到 4.4.2 等 11 种设备中进行了测试。上面代码的优点是:我们可以从设备库中选择任何图像,包括自动备份文件夹。但是您提到的现有代码不适用于从图库中选择视频(仅适用于自动备份文件夹)。

关于android - 使用 URI 中的 ParcelFileDescriptor 在 Android 中选择图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20780679/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com