2011-01-10 2 views
2

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

<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 автоматически открывается, и не устанавливается по умолчанию. У меня нет выбора ...

+0

единственное, что я знаю наверняка, что вложения контент-провайдер не использует имя файла, но некоторые буквенно-цифровой код, поэтому * .wav фильтр не работает для этого. Вместо этого следует использовать mimetype. – bigstones

+0

У меня уже есть '' там, есть ли другой способ, которым я должен это делать? – fredley

+0

не знаю ... у меня был этот '' для xml, и он сработал. (category = default, action = view) – bigstones

ответ

0

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

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

(спасибо fredley)

+0

Почему бы просто не использовать ** android: mimeType = "\ */\ *" ** –

2

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

+2

Каков фактический миметик в письме? я знаю, что это зависит от клиента, может быть, он не устанавливает его как «audio/wav», а что-то вроде «audio/x-wav»? – bigstones

+0

это 'audio/x-wav', спасибо за вашу помощь. Напишите это как ответ, чтобы я мог принять его! – fredley

Смежные вопросы