【发布时间】:2013-07-07 09:14:06
【问题描述】:
为了从我的 android 应用程序将图像发送到服务器,我必须获取图像的 mime 类型(或者,至少,它的扩展名)。
我从ACTION_GET_CONTENT 意图中获取图像。一些应用程序,如 Dropbox,发送 file:// 方案数据,因此我可以使用 MimeTypeMap.getFileExtensionFromUrl() 猜测扩展名,但其他一些应用程序,如 Google Drive,发送 content:// 方案,不允许这样做。
在这里发帖之前我已经尝试了很多东西,比如:
AssetFileDescriptor asset = getContentResolver().openAssetFileDescriptor(getIntent().getData(), "r");
FileInputStream stream = asset.createInputStream();
String mime = URLConnection.guessContentTypeFromStream(stream); // returns null
我认为唯一的解决方法是将资产解码为位图,然后生成新的压缩图像(使用Bitmap.compress()),但这会给手机增加一些工作量,并且可能会改变原始图像的格式/质量图片,所以只有在没有其他解决方案的情况下才保留它。
有人知道我的问题吗?非常感谢您的帮助;)
【问题讨论】:
标签: android mime-types file-type