Менеджер загрузки Android открыть файл с моим приложением

У меня есть приложение для 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);

Загрузка работает нормально, но когда я нажимаю на уведомление «загрузка завершена», я хочу, чтобы моя активность была открыта. Я получаю тост "Файл не может быть открыт".

В моем манифесте у меня есть фильтр намерений для суффикса файла .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="file" />
        <data android:mimeType="*/*" />
        <data android:pathPattern=".*\\.foobar" />
        <data android:host="*" />
    </intent-filter>

Я что-то пропустил?


person appsthatmatter    schedule 28.09.2015    source источник


Ответы (2)


наконец нашел решение!

Мне пришлось удалить линию шаблона пути

                <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>
person appsthatmatter    schedule 29.09.2015

Я думаю, вы найдете ответ на этот ответ. Скорее всего у вас проблема в трактовке Activiti или немного некорректное описание намерений.

Попробуйте добавить приоритет.

android:priority="integer"

Также вы должны посмотреть:

Удачи. Извините, что не могу помочь больше. Слишком много текста для комментария.

person user2413972    schedule 29.09.2015