2011-01-10 6 views
2

Ich möchte Audio-Anhänge in E-Mails mit meiner App öffnen. Momentan ist mein Intent-Filter wie folgt:Intent-Filter für E-Mail-Anhänge

<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> 

Dies funktioniert für alles, was ich will, außer für E-Mail-Anhänge. Derzeit, wenn ich eine WAV-Datei gesendet habe, ist das einzige, was ich tun kann, ist eine Vorschau, und das öffnet sich mit Winamp (so klar 3rd Party Apps haben einen Weg). Ich kann jedoch nicht herausfinden, was ich hinzufügen sollte, hat jemand eine Idee?

bearbeiten

Hier ist, was LogCat zu diesem Thema zu sagen hat. Wenn ich auf Vorschau bekomme ich

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 

Was seltsam ist, dass Winamp öffnet sich automatisch und wird nicht als Standard festgelegt. Ich habe keine Wahl ...

+0

das einzige, was ich sicher weiß ist, dass Anhänge Content-Provider nicht Dateinamen nicht verwenden, aber einige alphanumerischen Code, so dass die * .wav-Filter funktioniert nicht dafür. MimeType sollte stattdessen verwendet werden. – bigstones

+0

Ich habe bereits '' da drin, gibt es einen anderen Weg, ich sollte es tun? – fredley

+0

weiß nicht ... ich hatte diese '' für xml und es hat funktioniert. (category = default, action = view) – bigstones

Antwort

0

E-Mail-Clients scheinen MIME-Typen für Anhänge willkürlich auszuwählen, so dass Absichtsfilter, um sie zu öffnen, alle Möglichkeiten berücksichtigen müssen. Suche im Internet hilft, alle möglichen Arten zu finden, und man sollte einen <data/> Filter für jeden von ihnen hinzufügen, wenn ein Platzhalter wie audio/* nicht erwünscht ist (wie OP says).

Wie auch immer, Filterung durch Mimetype wird als erste Wahl neben der Filterung nach Dateinamenerweiterung vorgeschlagen (siehe this thread auf android-dev ml).

(dank fredley)

+0

Warum nicht einfach ** android: mimeType = "\ */\ *" ** –

2

Ersetzen audio/wav mit audio/* macht es funktioniert, aber das ist offensichtlich unerwünschtes Verhalten.

+2

Was ist der tatsächliche MIME-Typ in der E-Mail? Ich weiß, dass es vom Client abhängt, vielleicht stellt es es nicht als "audio/wav" ein, sondern etwas anderes wie "audio/x-wav"? – bigstones

+0

ist es 'audio/x-wav', vielen Dank für Ihre Hilfe. Schreibe es als Antwort, damit ich es annehmen kann! – fredley