Фильтр намерений для вложений электронной почты - PullRequest
2 голосов
/ 10 января 2011

Я хочу открыть аудио-вложения в сообщениях электронной почты с моим приложением. В настоящее время мой фильтр намерений выглядит так:

<intent-filter>
        <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" />
         <data android:mimeType="audio/wav" />
        <data android:scheme="http" android:host="*" android:pathPattern=".*\\.wav"/>
        <data android:scheme="https" android:host="*" android:pathPattern=".*\\.wav"/>
        <data android:scheme="content" android:host="*" android:pathPattern=".*\\.wav"/>
        <data android:scheme="file" android:host="*" android:pathPattern=".*\\.wav"/>
</intent-filter>

Это работает для всего, что я хочу, кроме вложений электронной почты. В настоящее время, если мне отправляют wav-файл, единственное, что я могу сделать, - это предварительно просмотреть его, и это открывается с помощью Winamp (поэтому очевидно, что сторонние приложения имеют доступ). Я не могу найти то, что я должен добавить, чтобы сделать это, у кого-нибудь есть идеи?

Редактировать

Вот что LogCat должен сказать по этому вопросу. Когда я нажимаю Preview, я получаю

01-10 19:28:52.691: INFO/ActivityManager(109): Starting: Intent { dat=content://gmail-ls/messages/xxxxxxx%40gmail.com/439/attachments/0.1/BEST/false cmp=com.google.android.gm/.ViewAttachmentActivity } from pid 19483

Что странно, так это то, что Winamp открывается автоматически и не устанавливается по умолчанию. У меня нет выбора ...

Ответы [ 2 ]

2 голосов
/ 10 января 2011

Замена audio/wav на audio/* делает его работоспособным, однако это явно нежелательное поведение.

0 голосов
/ 11 января 2011

почтовые клиенты, кажется, выбирают mimetypes для вложений произвольным образом, поэтому фильтры намерений для их открытия должны учитывать все возможности. поиск в Интернете помогает найти все возможные типы, и для каждого из них следует добавить фильтр <data/>, если не требуется подстановочный знак, такой как audio/* (как OP говорит ).

в любом случае, фильтрация по mimetype предлагается в качестве первого выбора, кроме фильтрации по расширению имени файла (см. эту тему на android-dev ml).

(спасибо Фредли)

...