Фильтр намерения Android для конкретного расширения файла?

Мне нравится техника INFORMATION_SCHEMA, но другой, которого я использовал: должностное лицо sp_pkeys 'таблица'

88
задан Curyous 14 November 2009 в 03:55
поделиться

2 ответа

Вместо android: path попробуйте android: mimeType со значением типа MIME этого конкретного фрагмента содержимого. Кроме того, android: path не принимает подстановочные знаки - используйте для этого android: pathPattern .

8
ответ дан 24 November 2019 в 07:29
поделиться

Вот как я определил свою деятельность в AndroidManifest.xml, чтобы это заработало.

<activity android:name="com.keepassdroid.PasswordActivity">
    <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="file" />
        <data android:mimeType="*/*" />
        <data android:pathPattern=".*\\.kdb" />
        <data android:host="*" />
    </intent-filter>
</activity>

Схема файла указывает на то, что это должно происходить при открытии локального файла (а не протокола типа HTTP).

mimeType можно установить в \*/\*, чтобы он совпадал с любым типом пантомимы.

pathPattern - это то место, где вы указываете, какому расширению вы хотите соответствовать (в этом примере .kdb). В начале .* совпадает любой квадрат символов. Эти строки требуют двойного экранирования, поэтому \\\\. соответствует буквальному периоду. Затем вы заканчиваете с расширением файла. Одно из предостережений с pathPattern заключается в том, что .* не является жадным совпадением, как вы ожидали бы, если бы это было регулярное выражение. Этот шаблон не будет совпадать с путями, которые содержат . до .kdb. Для более детального обсуждения этого вопроса и обходного пути смотрите здесь

Наконец, согласно документации Android, оба атрибута хоста и схемы необходимы для работы атрибута pathPattern, так что просто установите его в подстановочный символ, чтобы он совпадал с чем угодно.

Теперь, если вы выберете файл .kdb в таком приложении, как Linda File Manager, мое приложение появится как опция. Я должен заметить, что это само по себе не позволяет вам загрузить этот тип файла в браузере, так как он регистрируется только в файловой схеме. Наличие такого приложения, как Linda File Manager на вашем телефоне, позволяет вам загружать файлы любого типа.

117
ответ дан 24 November 2019 в 07:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: