2010-06-13 3 views
7

J'essaie d'ouvrir un type de pièce jointe d'e-mail spécifique avec mon activité, la pièce jointe elle-même est un fichier .ini de style texte brut avec l'extension * .os. Dans l'e-mail, ce fichier est joint en tant que "application/octet-stream". J'ai essayé le suivant, l'intention filtre pour attraper l'attachement avec mon activité:Ouverture des pièces jointes d'un e-mail dans 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> 

L'application e-mail est aller chercher la pièce jointe mais est ensuite me dit « La pièce jointe ne peut pas être affichée ». Que puis-je faire? Comment puis-je déboguer cela?

+0

Y at-il un badge pour des questions sans réponse de longue date? – zehrer

+0

Aucune idée si cela aide, mais il y a un blog sur la façon de le faire avec GMail, peut-être quelque chose pour vous? http://carvingcode.blogspot.com/2009/08/how-to-open-gmail-attachments-with.html – DrColossos

+0

@fredley La même chose pour vous puisque je suppose que vous en avez besoin à cause de la prime ajoutée;) – DrColossos

Répondre

1

Il devrait simplement être un système de fichiers, donc j'éliminer les autres et essayer avec tout cela et inclure le mimeType comme un joker (soit « * » ou « */* »):

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

Si cela ne fonctionne pas, essayez android.intent.action.MAIN pour l'action. Vérifiez les journaux pour voir si cela vous donne les détails de l'intention qui ne correspond à rien.

+0

Il en résulte un android.content.IntentFilter $ MalformedMimeTypeException: * – zehrer

0

Ma solution, qui a travaillé pour .wav fichiers était de définir les mimeType:

 <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

Qu'est-ce que ** android: mimeType = "application/os" **? –

Questions connexes