当用户从浏览器下载文件时,如何启动我的应用程序?
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>
我正在尝试为 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>