2010-06-13 13 views
7

Intento abrir un tipo de archivo adjunto de correo electrónico específico con mi actividad, el archivo adjunto en sí es un archivo ini de estilo de ventanas de texto sin formato con la extensión * .os. En el correo electrónico, este archivo se adjunta como "application/octet-stream". He intentado lo siguiente filtro intención de coger el archivo adjunto con mi actividad:Apertura de archivos adjuntos de correo electrónico en 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> 

La aplicación de correo electrónico es ir a buscar el archivo adjunto, pero entonces se me dice "El archivo adjunto no se puede mostrar". ¿Que puedo hacer? ¿Cómo puedo depurar esto?

+0

¿Hay una insignia para las preguntas sin respuesta desde hace mucho tiempo? – zehrer

+0

No tengo idea de si ayuda, pero hay una entrada de blog sobre cómo hacerlo con GMail, ¿hay algo para usted? http://carvingcode.blogspot.com/2009/08/how-to-open-gmail-attachments-with.html – DrColossos

+0

@fredley Lo mismo para usted, ya que supongo que lo necesita debido a la generosidad adicional;) ​​ – DrColossos

Respuesta

1

Debe ser simplemente un esquema de archivo, por lo que eliminaría los demás y tratar con eso e incluir el tipo MIME como un comodín (ya sea "*" o "*/*"):

<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 eso no funciona, tal vez intente con android.intent.action.MAIN para la acción. Verifique los registros para ver si eso le da los detalles de la intención que no coinciden con nada.

+0

Esto da como resultado un android.content.IntentFilter $ MalformedMimeTypeException: * – zehrer

0

Mi solución, que trabajó para .wav archivos era establecer el tipo MIME:

 <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é es ** android: mimeType = "application/os" **? –

Cuestiones relacionadas