【问题标题】:How do I launch my app when a user downloads a file from browser?当用户从浏览器下载文件时,我如何启动我的应用程序?
【发布时间】:2019-06-06 01:58:47
【问题描述】:

我正在尝试为 Android 制作自定义下载器 UI,我希望可以在我的应用清单中设置一个配置,以允许其他应用(如 chrome)在任何可下载类型的文件开始时自动打开我的应用下载。

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

非常感谢任何指点!

【问题讨论】:

  • 这听起来像是病毒。
  • 哈哈,我猜会的! - 这实际上只是我们在工作中进行的代码挑战,我从 dribbble 中找到了一个很酷的 UI 设计,并决定将其扩展为一个工作下载管理器,但无法让它接收下载意图。

标签: android android-intent download manifest launch


【解决方案1】:

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

 <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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2012-05-17
    • 2014-06-24
    • 1970-01-01
    • 2016-09-11
    • 2011-07-17
    相关资源
    最近更新 更多