Android: открыть файлы с пользовательским расширением и только эти файлы
Я хочу открыть файлы с расширением.bslvl в моем приложении. Я использовал следующий интент-фильтр:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
host="*"
android:mimeType="*/*"
android:pathPattern=".*\\.bslvl"
android:scheme="file" />
</intent-filter>
Проблема в том, что Path-Pattern не работает. Каждый файл с неизвестным расширением теперь автоматически открывается моим приложением. (Например, файлы.cfg.rdroid.rudi)
Если я что-то изменю в интент-фильтре, файлы.bslvl не будут просматриваться в моем приложении.
Та же проблема с вложениями электронной почты. Я использовал другой фильтр намерений, так как gmail не смог найти мое приложение в качестве средства просмотра для файлов.bslvl, где я изменил только mimeType на
android:mimeType="application/octet-stream"
Тем не менее, теперь Gmail пытается просмотреть каждый файл с неизвестным доп. с моим приложением.
Что я сделал не так?
Другие решения здесь на stackru не решили мою проблему.
1 ответ
Вы не указали атрибут android:host.
Согласно документам о намерениях- фильтрах...
Эти атрибуты имеют смысл, только если схема и атрибуты хоста также указаны для фильтра.
Похоже, вы пытались указать хост, но забыли указать атрибут хоста в пространстве имен android.