Откройте мое приложение для определенного файла и расширения 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
.
Для начала, не похоже, что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
схем.
Я пытался открыть приложение".Riley" расширения из браузеров, однако перенаправляющие ссылки не имеют MIME-типа, поэтому я удалилmimeType
значение изdata
шаблон (у меня былandroid:mimeType="*/*"
ранее, так как MIME-тип не согласован), и это позволило мне нормально открывать URL-адреса перенаправления.
Проблема возникла, когда я пытался открыть прямой".Riley" URL из браузера (например:http://thisisnotarealdomainname.com/myfile.riley) и возможность открыть из моего приложения пропала. ДобавлениеmimeType
значение обратно к моемуdata
Шаблон позволил мне открыть с прямого URL.
intent-filter
не позволит мне открывать как прямые, так и косвенные URL.
Я хотел бы иметь возможность открывать из нескольких различных типов схем (например:http,
файл,
содержание), but as soon as I remove
схемаaltogether, it disqualifies my application from opening the
HTTPscheme 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, безусловноучитывая этиосложнения?