我的应用程序正在使用ACTION_GET_INTENT创建一个查找图像mime类型的意图。在返回时,我组织了一个漫长而详细的过程,包括检查数据的意图、从URI的内容解析器获取游标、检查uri.toString()以及处理某些URI与其他URI不同。例如,"content://com.google.android.gallery3d“将是"content://com.google.android.apps.docs.storage”,依此类推。
这变得很痛苦,特别是自从KitKat出现并引入了更多的URI来处理之后。
但是后来我在一些与SAF和KitKat相关的谷歌开发者页面上看到了这段建议代码。这似乎工作得很完美。我在KitKat、JB和GB设备上测试了所有已安装的“文件选择器”类应用程序。它从未失败过。
**所以我的问题是is....is这个代码吗?还有什么需要注意的吗?如果这是首选方法,那么为什么有这么多关于如何处理从选择图像返回的意图/URI的帖子呢?
代码示例可以在“位图”部分下的:https://developer.android.com/guide/topics/providers/document-provider.html Look找到。
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");
}发布于 2014-07-15 22:41:37
上面提到的代码是适用于所有设备的完美解决方案。因为我们有一个自动备份文件夹和一些特定的设备uri问题。因此,如果你使用FileDescriptor,它在所有设备上都能正常工作。我还使用了相同的代码,并在2.3.3版本到4.4.2版本等11种设备上进行了测试。上述代码的优点是:我们可以从设备库中选择任何图像,包括autobackup文件夹。但是你提到的现有代码不能从图库中选择视频(只适用于autobackup文件夹)。
https://stackoverflow.com/questions/20780679
复制相似问题