Android 确定共享Dropbox意图的MIME类型?

Android 确定共享Dropbox意图的MIME类型?,android,android-intent,dropbox,Android,Android Intent,Dropbox,我的应用程序将从其他应用程序(包括Dropbox)接收共享请求。我需要知道我接收的是什么类型的文件,但是我从Dropbox获得的mime类型是“text/plain”。例如: Intent i = getIntent(); String sMimeType = i.getType(); //Value = "text/plain" String sExtraText = i.getStringExtra(Intent.EXTRA_TEXT); //Value = "http://db.tt

我的应用程序将从其他应用程序(包括Dropbox)接收共享请求。我需要知道我接收的是什么类型的文件,但是我从Dropbox获得的mime类型是“text/plain”。例如:

Intent i = getIntent();
String sMimeType = i.getType();  //Value = "text/plain"
String sExtraText = i.getStringExtra(Intent.EXTRA_TEXT);   //Value = "http://db.tt/tH42K3B7"
我需要知道图像、视频和音乐文件之间的区别。有没有办法根据意向书中的信息确定文件类型?或者有没有一种方法可以使用Dropbox API来实现这一点

谢谢, -格雷格·雷诺

编辑:根据smarx提出的解决方案,我在这里找到了一些Android代码。然后加上这个,

sLocation = connection.getHeaderField("location");
mimeType = URLConnection.guessContentTypeFromName(sLocation);

我不确定这里的规范是什么,但我认为
text/plain
指的是意图中共享的数据类型。(因为它是一个URL,纯文本似乎很合适。)

在URL中,您可以通过发出
HEAD
请求来查找MIME类型。首先解析缩短的链接以获得完整的共享链接(在
位置
标题中)。然后通过将
www.dropbox.com
替换为
dl.dropboxusercontent.com
,将共享链接转换为内容的直接链接。(请参阅。)然后发出
标题
请求并查看
内容类型
标题:

$ http HEAD http://db.tt/tH42K3B7
HTTP/1.1 302 FOUND
Connection: keep-alive
Content-Type: text/html; charset=utf-8
Date: Mon, 26 Aug 2013 15:12:32 GMT
Server: nginx
cache-control: no-cache
location: https://www.dropbox.com/s/dmbdlf56t043miq/2012-02-11%2019.56.17.jpg
pragma: no-cache

$ http HEAD https://dl.dropboxusercontent.com/s/dmbdlf56t043miq/2012-02-11%2019.56.17.jpg
HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: image/jpeg
Content-length: 1560063
Date: Mon, 26 Aug 2013 15:12:52 GMT
Server: nginx
X-RequestId: a2c4d393af5e0eee80d6f33f68762fd4
accept-ranges: bytes
cache-control: max-age=0
etag: 1525n
pragma: public
x-dropbox-request-id: 23f50be73831cde4f39a12d5e3f0af78
x-server-response-time: 1149

(另外,我使用的工具是。你可以用
curl-I
做同样的事情)

谢谢-这为我指明了正确的方向。请参见上面我的编辑