【问题标题】:How do I permit the android browser to download files of a particular extension?如何允许 android 浏览器下载特定扩展名的文件?
【发布时间】:2010-08-17 21:29:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: android android-intent intentfilter


    【解决方案1】:

    将适当的条目添加到清单中,以便您针对该类型的文件响应 ACTION_VIEW Intents。例如,此过滤器适用于可以查看 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>
    

    使用适当的 &lt;data&gt; 元素,您实际上可以监视 .xyz 文件,但我认为如果您可以监视 MIME 类型会更好。

    【讨论】:

    • 这不会拦截带有http uri作为数据的android.intent.action.VIEW意图吗?我希望浏览器继续下载。
    • @Sancho:宣传它支持 MIME 类型的应用程序(例如 Astro)下载文件。
    • 那么就没有办法让浏览器知道浏览器可以下载文件了吗?所有下载都必须通过广告支持该文件的应用程序?
    • @Sancho:“所有下载都必须通过广告支持文件的应用程序?” -- 正确。
    • 嗯。事实证明,我能够将 元素添加到非浏览器应用程序的清单中,并且浏览器完成了数据类型的下载。然后,当我在下载列表中单击该文件时,它启动了非浏览器应用程序。因此,下载似乎没有通过该文件的应用程序广告支持。无论如何,这个解决方案奏效了。
    猜你喜欢
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 2013-05-20
    • 2016-07-26
    • 1970-01-01
    相关资源
    最近更新 更多