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 пытается просмотреть каждый файл с неизвестным расширением. с моим приложением.

Что я сделал не так?

Другие решения здесь, в stackoverflow, не решили мою проблему.


person Day    schedule 19.09.2013    source источник
comment
Я не уверен, что это решит вашу проблему, но я считаю, что это должно быть android:host вместо host   -  person jacobhyphenated    schedule 19.09.2013


Ответы (1)


Вы не указали атрибут android:host.

Согласно документам intent-filter...

Эти атрибуты имеют смысл только в том случае, если для фильтра также указаны схема и атрибуты хоста.

Похоже, вы пытались указать хост, но забыли уточнить атрибут хоста пространством имен Android.

person bradtgmurray    schedule 03.11.2013