为了从我的 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()
),但它会给手机增加一些工作,它可能会改变原始图像的格式/质量,所以我保留它只有在没有其他解决方案的情况下。
有人知道我的问题吗?非常感谢您的帮助;)