Файловые ассоциации Android - PullRequest
1 голос
/ 18 января 2012

Мой манифест:

<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:scheme="http" android:host="*" android:pathPattern=".*mht" />
    <data android:scheme="https" android:host="*" android:pathPattern=".*mht" />
</intent-filter>
<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:mimeType="message/rfc822" android:scheme="http" />
    <data android:mimeType="multipart/related" android:scheme="http" />
    <data android:mimeType="message/rfc822" android:scheme="https" />
    <data android:mimeType="multipart/related" android:scheme="https" />
</intent-filter>

Результаты:

Очень любопытно, нет?Что я здесь не так делаю?Столь же странно - мой манифест:

<intent-filter
    android:icon='@drawable/ic_launcher'
        android:label='AndroidMHT File'
    android:priority='1'>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.EDIT" /> 
    <action android:name="android.intent.action.PICK" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="file" />
    <data android:scheme="content" />
    <data android:mimeType="*/*" />
    <data android:pathPattern=".*\\.mht" />
    <data android:host="*" />
</intent-filter>

Результаты:

  • / mnt / SDCARD / Android / data / com.mht / files / flipie.mht <---chooser не отображает мою программу как параметр </li>
  • / mnt / SDCARD / Android / data / com.mht / files / keepme.mht <--- chooser отображает мою программу как параметр </li>

Я на краю сЛюбая помощь высоко ценится.

Ответы [ 3 ]

6 голосов
/ 18 января 2012

Мне помогли предложения из первого ответа: Фильтр намерений Android: связать приложение с расширением файла

Это мой новый манифест, для тех, кто может извлечь из этого пользу:

<intent-filter
    android:icon='@drawable/ic_launcher'
        android:label='AndroidMHT File'
    android:priority='1'>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.EDIT" /> 
    <action android:name="android.intent.action.PICK" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:mimeType="*/*" />
    <data android:pathPattern="*.mht" />
</intent-filter>
<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:scheme="http" android:host="*" android:pathPattern=".*\\.mht" />
    <data android:scheme="https" android:host="*" android:pathPattern=".*\\.mht" />
</intent-filter>
<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:mimeType="message/rfc822" android:scheme="http" />
    <data android:mimeType="multipart/related" android:scheme="http" />
    <data android:mimeType="message/rfc822" android:scheme="https" />
    <data android:mimeType="multipart/related" android:scheme="https" />
</intent-filter>
0 голосов
/ 16 августа 2017

Вы можете попробовать изменить следующие атрибуты

android:mimeType="text/*"
android:pathPattern="*.mht"

на ваш фильтр намерений

0 голосов
/ 18 января 2012

При извлечении файлов с вашего веб-сайта, можете ли вы проверить, какие типы контента есть в этих двух файлах?Я ожидал бы другого поведения, если бы они показали другой тип (возможно, веб-сервер интерпретирует данные и видит разные триггеры в каждом файле).

Я проверил заголовки на http://web -sniffer.net/ , и второй файл больше не существует, поэтому я не могу сравнить.

Еще одна складка, которая может повлиять на вещи - если вы не настроите пользовательский агент в соответствии с тем, что будут использовать ваши устройства Android,Вы можете получить другой результат в своем браузере на рабочем столе или в веб-перехватчике.

Не уверен, что именно это вызывает вашу проблему, но стоит проверить.

...