如何允许android浏览器下载特定扩展名的文件?

如何允许android浏览器下载特定扩展名的文件?,android,android-intent,intentfilter,Android,Android Intent,Intentfilter,我希望默认的android浏览器能够下载特定文件扩展名为.xyz的文件 如果不安装Astro(或其他文件管理器),用户将收到错误“无法下载。此手机不支持该内容”。安装Astro应用程序允许android浏览器将任何文件下载到SD卡 它是怎么做到的?我不希望我的应用程序的用户必须下载Astro,而是让操作系统或浏览器知道可以下载扩展名为.xyz的文件,因为我的应用程序将处理这些文件。向清单中添加适当的条目,以便您对该类文件的操作视图意图做出响应。例如,此筛选器适用于可以查看PDF文件的活动:

我希望默认的android浏览器能够下载特定文件扩展名为.xyz的文件

如果不安装Astro(或其他文件管理器),用户将收到错误“无法下载。此手机不支持该内容”。安装Astro应用程序允许android浏览器将任何文件下载到SD卡


它是怎么做到的?我不希望我的应用程序的用户必须下载Astro,而是让操作系统或浏览器知道可以下载扩展名为.xyz的文件,因为我的应用程序将处理这些文件。

向清单中添加适当的条目,以便您对该类文件的
操作视图
意图做出响应。例如,此筛选器适用于可以查看PDF文件的活动:

        <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/pdf" />
        </intent-filter>


使用适当的
元素,您可以直接查看
.xyz
文件,尽管我认为如果您可以查看MIME类型会更好。

这样就不会截获以http uri为数据的android.intent.action.VIEW intent了?我希望浏览器仍能下载。@Sancho:广告支持MIME类型的应用程序(如Astro)会下载文件。所以没有办法让浏览器知道浏览器可以下载文件?所有下载都必须通过发布文件支持的应用程序?@Sancho:“所有下载都必须通过发布文件支持的应用程序?”--correct.Hm。事实证明,我能够将一个元素添加到非浏览器应用程序的清单中,浏览器完成了数据类型的下载。然后,当我点击下载列表中的那个文件时,它启动了非浏览器应用程序。因此,似乎下载没有通过应用程序广告支持的文件。不管怎样,这个解决方案奏效了。