Обрабатывать файлы ics / vcs в моем приложении для Android, корректный Intent Filter - PullRequest
1 голос
/ 16 февраля 2012

Я видел этот вопрос более 100 раз, но ни один из ответов не работает для меня.Я хочу, чтобы мое приложение обрабатывало все файлы с расширениями ics или vcs *, независимо от того, откуда они берутся.* За исключением того, что я не хочу загружать их сам, если они приходят с http / https, я просто хочу, чтобы браузер хотя бы позволил пользователю сохранить их, а затем открыть с моим приложением.В настоящее время браузер говорит: «Контент не поддерживается на этом телефоне».

Вот то, что у меня есть в настоящее время, но я пробовал все:

        <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:host="*" />
            <date android:mimeType="text/calendar" />
            <data android:scheme="https" />
        </intent-filter>

С вышеупомянутым, когда я нажимаюhttps-ссылка, которая приходит с моего сервера, и я знаю, что мой сервер отправляет текстовый / календарный mime-тип, дроид спрашивает, какое приложение они хотят использовать, чтобы открыть ссылку.В списке есть мое приложение или браузер.Если я выбираю свое приложение, оно запускает мою активность и дает мне Uri.Я хочу, чтобы браузер загружал файл, однако я не хочу загружать его сам ... так же, как другие типы файлов работают, изображения, PDF-файлы и т. Д. Если я выберу браузер, он начнет загрузку, но затем остановитсяс ошибкой «контент не поддерживается на этом телефоне».

Я также пробовал это:

        <intent-filter >
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:host="*" />
            <data android:scheme="file" />
            <data android:pathPattern=".*\\.ics" />
        </intent-filter>

Также пробовал со схемой, установленной на «контент», и множеством других вариантов, которые я нашелна ТАК и в других местах.

1 Ответ

0 голосов
/ 16 февраля 2012

Следует учитывать, что браузеры реализуют это поведение загрузки для двоичных файлов, и вы не можете изменить его с помощью фильтра намерений.

Другие приложения, такие как pdf viewer, объявляют фильтр намерений, идентичный второму подходу (за исключением расширения файла).

Поэтому я бы порекомендовал просто скачать файл самостоятельно. Поскольку для этого требуется всего несколько строк кода, это не должно быть большой проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...