代码之家  ›  专栏  ›  技术社区  ›  yanchenko

正在获取文件下载?

  •  1
  • yanchenko  · 技术社区  · 15 年前

    我想让我的应用程序捕获特定类型文件的下载。 以下是androidmanifest.xml的对应部分:

    <uses-permission android:name="android.permission.INTERNET" />
    
            <activity android:name=".activity.ExeReceiver">
                <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:scheme="http" />
                    <data android:host="*" />
                    <data android:pathPattern=".*\\.exe" />
                </intent-filter>
            </activity>
    

    现在,打开一个链接到.exe文件的页面,单击它。下载管理器启动,然后通知 电话不支持该内容。 我的活动连电话都没有。

    问题是:

    1)为什么不给我的活动打电话?

    2)让下载管理器完成它的工作,然后在文件下载完成后得到通知的正确方法是什么?

    短暂性脑缺血发作

    2 回复  |  直到 6 年前
        1
  •  3
  •   Pragati Singh    6 年前

    结果证明

    <data android:mimeType="*/*"/>
    

    零件是必需的。 根据 Android Developers Groups 必须手动下载文件 Uri: getIntent().getData() .

        2
  •  1
  •   CommonsWare    15 年前

    作为测试,尝试在 <data android:host="*" /> 用:

    • 真正的通配符( ".*" )
    • 正在测试的实际服务器名称,或
    • 把那整个拆下来 <数据安卓:host=“*”/> 要素

    如果实际的服务器名有效,而通配符无效,那么就有意义了,因为文档中没有说明您可以使用通配符 android:host . 但是,如果删除整个元素失败,我不确定如何从任意主机捕获文件。希望第一或第三发子弹能解决你的问题。