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.

Другие вопросы по тегам