gpt4 book ai didi

android-intent - 确定意图返回的android中uri的Mime类型?

转载 作者:行者123 更新时间:2023-12-04 13:03:09 26 4
gpt4 key购买 nike

首先是我试图实现的一些背景 -

我正在开发一个图像共享应用程序,我需要用户从文件系统中选择一个图像。

为此,我正在使用此代码 -

    Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, REQUEST_CODE_IMAGE_PICKER_INTENT);

现在,这会触发一个选择器,我在其中看到多个选项,包括手机中的图库和 FileManager 应用程序。如果我选择图库并从那里选择图像,那么我的事件会收到一个带有图像内容 uri 的意图。
但是如果我选择 FileManager App,我可以选择任何可能不是图像的文件。所以,我需要的是能够确定意图中返回的 uri 的 mime 类型。 Intent 的 getType 方法返回 null 。

有没有办法从返回的意图中确定 mime 以便能够确定内容是否是图像。

如果这不起作用,那么我可能必须使用 MimeTypeMap 从文件扩展名中确定 mime。

最佳答案

我找到了一种获取内容 uri 的 mime 类型的方法,但对其他类型的 uri 没有任何作用,例如 'file://.....' 形式的 uri。

要获取内容 uri 的 mime 类型 -

    ContentResolver cr = this.getContentResolver();
String mime = cr.getType(YOUR_CONTENT_URI);

这仅适用于内容 uri 的 .因此,对于其他 uri,我使用 MimeTypeMap 从文件扩展名推断它们的 MIME 类型。

关于android-intent - 确定意图返回的android中uri的Mime类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15587873/

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