Я пытаюсь выяснить намерения фильтры мне нужны для того, чтобы:намерения фильтр, чтобы поймать намерения для просмотра * .EXT файлов
просмотра файла или содержимого с * .npk расширением
Я прочитал загружает статьи stackoverflow о фильтрах намерений, но все еще не может понять, что мне не хватает.
Например, если это мой фильтр намерений, я ожидаю, что он поймает файлы с расширением «* .npk». Я знаю об ошибке с узорами, поэтому я добавил несколько строк данных для того, чтобы поймать пути, где Eсть 0-4 точек перед .npk:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" android:pathPattern=".*\\.npk" />
<data android:scheme="file" android:pathPattern=".*\\..*\\.npk" />
<data android:scheme="file" android:pathPattern=".*\\..*\\..*\\.npk" />
<data android:scheme="file" android:pathPattern=".*\\..*\\..*\\..*\\.npk" />
<data android:scheme="file" android:pathPattern=".*\\..*\\..*\\..*\\..*\\.npk" />
</intent-filter>
Когда я открываю файл из общего командира приложение работает, и он начинает свою деятельность, как и ожидалось (BTW это работает, даже если у меня есть только один pathPattern =, так что, может быть, упомянутая ошибка будет исправлена в леденец «* \\ НПК..»):
{act=android.intent.action.VIEW dat=file:///storage/emulated/0/Android/data/com.fletech.smartbaby.android.pro/files/npk/animal-water-he.npk typ=application/octet-stream flg=0x10000000 cmp=com.fletech.smartbaby.android/.CategorySliderActivity}
Однако я могу» t заставить его работать из приложения Dropbox. Это «захваченное» намерение с logcat. Чтобы захватить его, я добавил android: mimeType = "*/*", поэтому я мог выбрать свое приложение, теперь каждый файл (также .jpg) хочет открыть мое приложение.
{act=android.intent.action.VIEW dat=file:///storage/emulated/0/Android/data/com.dropbox.android/files/u123456/scratch/apk/nature_0.npk typ=application/octet-stream flg=0x10000003 cmp=com.fletech.smartbaby.android/.CategorySliderActivity (has extras)}
Я не понимаю, почему указанный фильтр не поймает это намерение. Единственное различие, которое я вижу между общим намерением командира и умыванием Dropbox, - это флаг, дополнительные функции, которые не должны иметь значения IMHO, и что на пути до расширения файла есть 2 vs 4 точки, но мой фильтр намерений должен заботиться из этого.
Примечание: Я разрабатываю и тестирую на леденец, но я бы хотел, чтобы он работал на api 9+.