如何捕获/收听Android Web浏览器下载

时间:2012-01-06 18:26:22

标签: android url android-intent

我的android应用程序监听浏览器意图,以便在用户点击某种类型的URI时捕获它们。更具体地说,当用户点击指向torrent文件的超链接(i.g. http://somewhere/file.torrent)时,我希望我的应用程序打开。

从我的应用程序AndroidManifest.xml中看到我的意图过滤器:

        <intent-filter >
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:mimeType="application/x-bittorrent"
                android:scheme="http" />
        </intent-filter>

        <intent-filter >
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:host="*"
                android:pathPattern=".*\\.torrent"
                android:scheme="http" />
        </intent-filter>

只要超链接指向文件位置,这就可以正常工作。 但是 - 有时URL会直接指向文件,并由服务器解释为根据某种类型的ID返回要下载的文件,如此链接http://www.mininova.org/get/13202308,它会返回文件。在这种情况下,我的intent-filters不起作用,android浏览器下​​载文件而不是打开我的应用程序并传递文件URI的意图。

有没有人知道如何获取文件URI?

由于

1 个答案:

答案 0 :(得分:1)

在这些情况下,http响应可能会将标头Content-disposition:设为attachment;filename=file.torrent

如果是这种情况,浏览器甚至不会抛出意图。