Откройте мое приложение для определенного файла и расширения URL-адреса - фильтр намерений не работает должным образом

Вопрос:

Как я могу заставить свое приложение открыть файл и расширение URL, безусловно?

Я в конце своего ума с настройкой моегоintent-filter поскольку ничего из этого не имеет никакого смысла. Моя конечная цель - открыть все, что имеетpath заканчивается определенным продолжением. Для примера давайте выберем".Riley" как расширение моей цели.

Моя база `интент-фильтр`
<intent-filter>
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data
        android:host="*"
        android:mimeType="*/*"
        android:pathPattern=".*\\.riley" />
</intent-filter>

В настоящее время это работает, чтобы открыть изfile а такжеcontent.

Проблема № 1: pathPattern

Для начала, не похоже, чтоdata параметрpathPattern делает что-нибудь, как я установил:

<data
    android:host="*"
    android:mimeType="*/*"
    android:pathPattern=".*\\.riley" />

.. но я все еще могу открытьIntentсUri пути, которые не заканчиваются".Riley" подfile а такжеcontent схема.

Несколько примеров путей, которые мое приложение открыло с помощью этогоintent-filter находятся:

Path: /storage/sdcard0/Download/MyApp.apk Path: /messagesByAccount/1

«Путь:» был просто моим собственным дополнением в журнале для ясности. Первый из Gmail подfile схема и вторая от gtalk подcontent схема. Учитывая это, я уже запутался в том, какintent-filters работай.

pathPattern игнорируетсяfile а такжеcontent схем.

Проблема № 2: Открытие в браузере

Я пытался открыть приложение".Riley" расширения из браузеров, однако перенаправляющие ссылки не имеют MIME-типа, поэтому я удалилmimeType значение изdata шаблон (у меня былandroid:mimeType="*/*" ранее, так как MIME-тип не согласован), и это позволило мне нормально открывать URL-адреса перенаправления.

Проблема возникла, когда я пытался открыть прямой".Riley" URL из браузера (например:http://thisisnotarealdomainname.com/myfile.riley) и возможность открыть из моего приложения пропала. ДобавлениеmimeType значение обратно к моемуdata Шаблон позволил мне открыть с прямого URL.

intent-filter не позволит мне открывать как прямые, так и косвенные URL.

Выпуск № 3: схема

Я хотел бы иметь возможность открывать из нескольких различных типов схем (например:http,файл,содержание), but as soon as I removeсхемаaltogether, it disqualifies my application from opening theHTTPscheme and when I specifyсхема = "*", it disqualifies my application from opening ANY scheme. I've also tried adding moreпаттерны данных, но я чувствую, как будто только один из них вступил в силу, поскольку это мне совсем не помогает.

Итак, указавhttp позволитhttp, но, очевидно, тоже не позволилfile или жеcontent и не указавscheme отключаетhttp.

Я не могу открыть из всех разных схем.

Чтобы повторить,как я могу получить приложение, чтобы открыть файл и расширение URL, безусловноучитывая этиосложнения?

Ответы на вопрос(1)

Ваш ответ на вопрос