当用户从浏览器下载文件时,如何启动我的应用程序?

How do I launch my app when a user downloads a file from browser?

我正在尝试为 Android 创建一个自定义下载器 UI,我希望可以在我的应用程序清单中设置一个配置以允许 [=18= 等其他应用程序] 在任何可下载类型的文件开始下载时自动打开我的应用程序。

理想情况下,只需替换 Android 下载器就是这里的目标。

非常感谢任何指点!

您必须在 activity 标签中使用意图过滤器,如下所示:

 <activity android:label="@string/app_name" 
            android:launchMode="singleTop" 
            android:name=".DownloadActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:scheme="http"/>
            <data android:scheme="https"/>
            <data android:scheme="ftp"/>
            <data android:scheme="sftp"/>
            <data android:mimeType="image/*"/>
            <data android:mimeType="video/*"/>
            <data android:mimeType="audio/*"/>
            <data android:mimeType="text/plain"/>
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:scheme="http"/>
            <data android:scheme="https"/>
            <data android:scheme="ftp"/>
            <data android:scheme="sftp"/>
            <data android:host="*"/>
            <data android:pathPattern=".*\.apk"/>
            <data android:pathPattern=".*\.apk.*"/>
            <data android:pathPattern=".*\..*\.apk.*"/>
            <data android:pathPattern=".*\..*\..*\.apk.*"/>
            <data android:pathPattern=".*\..*\..*\..*\.apk.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\.apk.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\..*\.apk.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\..*\..*\.apk.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\..*\..*\..*\.apk.*"/>
            <data android:pathPattern=".*\.mp3"/>
            <data android:pathPattern=".*\.mp3.*"/>
            <data android:pathPattern=".*\..*\.mp3.*"/>
            <data android:pathPattern=".*\..*\..*\.mp3.*"/>
            <data android:pathPattern=".*\..*\..*\..*\.mp3.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\.mp3.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\..*\.mp3.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\..*\..*\.mp3.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\..*\..*\..*\.mp3.*"/>
            <data android:pathPattern=".*\.ape"/>
            <data android:pathPattern=".*\.mp4"/>
            <data android:pathPattern=".*\.avi"/>
            <data android:pathPattern=".*\.wmv"/>
            <data android:pathPattern=".*\.wav"/>
            <data android:pathPattern=".*\.asf"/>
            <data android:pathPattern=".*\.mpg"/>
            <data android:pathPattern=".*\.3gp"/>
            <data android:pathPattern=".*\.3gpp"/>
            <data android:pathPattern=".*\.amr"/>
            <data android:pathPattern=".*\.rm"/>
            <data android:pathPattern=".*\.rmvb"/>
            <data android:pathPattern=".*\.ogg"/>
            <data android:pathPattern=".*\.oga"/>
            <data android:pathPattern=".*\.ogv"/>
            <data android:pathPattern=".*\.wma"/>
            <data android:pathPattern=".*\.doc"/>
            <data android:pathPattern=".*\.docx"/>
            <data android:pathPattern=".*\.ppt"/>
            <data android:pathPattern=".*\.pps"/>
            <data android:pathPattern=".*\.ppx"/>
            <data android:pathPattern=".*\.pptx"/>
            <data android:pathPattern=".*\.xls"/>
            <data android:pathPattern=".*\.xlsx"/>
            <data android:pathPattern=".*\.chm"/>
            <data android:pathPattern=".*\.txt"/>
            <data android:pathPattern=".*\.zip"/>
            <data android:pathPattern=".*\.zip.*"/>
            <data android:pathPattern=".*\..*\.zip.*"/>
            <data android:pathPattern=".*\..*\..*\.zip.*"/>
            <data android:pathPattern=".*\..*\..*\..*\.zip.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\.zip.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\..*\.zip.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\..*\..*\.zip.*"/>
            <data android:pathPattern=".*\..*\..*\..*\..*\..*\..*\..*\.zip.*"/>
            <data android:pathPattern=".*\.rar"/>
            <data android:pathPattern=".*\.rar.*"/>
            <data android:pathPattern=".*\..*\.rar.*"/>
            <data android:pathPattern=".*\..*\..*\.rar.*"/>
            <data android:pathPattern=".*\..*\..*\..*\.rar.*"/>
            <data android:pathPattern=".*\.pdf"/>
            <data android:pathPattern=".*\.torrent"/>
            <data android:pathPattern=".*\.mkv"/>
            <data android:pathPattern=".*\.swf"/>
            <data android:pathPattern=".*\.flv"/>
            <data android:pathPattern=".*\.aiff"/>
            <data android:pathPattern=".*\.pcs"/>
            <data android:pathPattern=".*\.mov"/>
        </intent-filter>

 </activity>