2010-06-13 6 views
7

Ich versuche, einen bestimmten E-Mail-Anlagetyp mit meiner Aktivität zu öffnen, der Anhang selbst ist eine reine Text-Windows-Stil-Ini-Datei mit der Endung * .os. In der E-Mail ist diese Datei als "application/octet-stream" angehängt. Ich habe versucht, die folgenden Intent-Filter, um die Anlage mit meiner Tätigkeit zu fangen:Öffnen von E-Mail-Anhängen in Android

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

Der E-Mail-App wird die Anlage zu holen, aber sagt mir dann „Der Anhang kann nicht angezeigt werden“. Was kann ich tun? Wie kann ich das debuggen?

+0

Gibt es ein Abzeichen für langjährige offene Fragen? – zehrer

+0

Keine Ahnung, ob es hilft, aber es gibt einen Blogpost darüber, wie man es mit Google Mail macht, vielleicht etwas für Sie? http://carvingcode.blogspot.com/2009/08/how-to-open-gmail-attachments-with.html – DrColossos

+0

@fredley Das gleiche für Sie, da ich davon ausgehe, dass Sie es wegen der zusätzlichen Prämie benötigen;) – DrColossos

Antwort

1

Es sollte einfach eine Datei Schema sein, so würde ich die andere beseitigen und versuchen, mit nur, dass und auch dem mimt als Platzhalter (entweder „*“ oder „*/*“):

<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=".*\\.os" /> 
    <data android:host="*" /> 
</intent-filter> 

Wenn das nicht funktioniert, versuchen Sie vielleicht android.intent.action.MAIN für die Aktion. Überprüfen Sie die Protokolle, um zu sehen, ob Ihnen die Details der Absicht angezeigt werden, die zu nichts passt.

+0

Dies führt zu einem android.content.intentFilter $ MalformedMimeTypeException: * – zehrer

0

Meine Lösung, die für .wav Dateien arbeitete, war die mime einzustellen:

 <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="application/os" /> 
    </intent-filter> 
+0

Was ist ** android: mimeType = "application/os" **? –