android下载管理器打开我的应用程序文件

时间:2015-09-28 19:48:36

标签: android android-download-manager

我有我的Android应用程序,它通过DownloadService下载文件。此文件采用特殊文件格式,只能在我的应用程序中使用 - 它具有后缀* .foobar。

我以这种方式开始下载:

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDestinationInExternalPublicDir("/", "aaaa.foobar");

// get download service and enqueue file
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);

下载工作正常,但当我点击通知“下载完成”时,我希望我的活动将被打开。我得到的是吐司“文件无法打开”。

在我的Manifest中,我有一个.foobar文件后缀的intent-filter。

    <intent-filter android:label="@string/app_name">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="file" />
        <data android:mimeType="*/*" />
        <data android:pathPattern=".*\\.foobar" />
        <data android:host="*" />
    </intent-filter>

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

终于找到了解决方案!

我不得不删除路径模式行

                <data android:pathPattern=".*\\.foobar" />

并将架构更改为内容。所以完整的意图过滤器是:

<intent-filter android:label="@string/app_name">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="content" />
                <data android:mimeType="application/wcmap" />
                <data android:host="*" />
            </intent-filter>

答案 1 :(得分:0)

I think you will find the answer to this answer. Most likely you have a problem in the treatment of Activiti or slightly incorrect description of intent.

Try adding a priority.

android:priority="integer"

Also you should look:

Good luck. Sorry that can not help more. Too much text for a comment.