Android: registro de Intent Filter para abrir archivos adjuntos de correo electrónico con mi aplicación

Tengo una aplicación que genera tipos de archivos personalizados (.sor). Dentro de la aplicación tengo una función para enviar un correo electrónico con uno de estos archivos adjuntos. También tengo un filtro de intención para permitir que la aplicación aparezca en la lista de aplicaciones que pueden abrir este tipo de archivo. Esto me permite (a veces) abrir el archivo con la aplicación directamente desde el cliente de correo electrónico del usuario en el teléfono.

Sin embargo, esto solo funciona cuando el correo electrónico proviene de un cliente de correo electrónico de PC, y no funcionará cuando el correo electrónico se recibe desde un teléfono. Por ejemplo, si genero uno de estos archivos .sor y luego uso mi aplicación para enviar un correo electrónico a mi propia cuenta de correo electrónico, recibiré el correo electrónico en mi teléfono, pero no podré abrir el archivo adjunto con mi aplicación ... PERO , si envío el correo electrónico a la misma cuenta y lo abro en mi PC (con Thunderbird) en lugar de hacerlo en el teléfono y luego lo reenvío o lo envío como un nuevo correo electrónico a mi teléfono, podré usar la misma aplicación de correo electrónico. en el teléfono para abrir el archivo adjunto con mi aplicación ... Solo estoy hablando de una cuenta de correo electrónico aquí, la única diferencia es desde dónde se envió el correo electrónico, mi teléfono o mi PC con Windows 7.

Lo único en lo que puedo pensar es que cuando envío el correo electrónico desde el teléfono, se inserta un tipo mime diferente en el archivo adjunto que cuando lo envío desde Thunderbird en mi PC ... Especifico el tipo mime como "aplicación / octet-stream "cuando envío el correo electrónico desde mi aplicación y tengo un filtro de intento que busca este tipo de mime ... pero no funciona correctamente.

Mi filtro de intención:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <data android:mimeType="application/octet-stream" />
  <data android:scheme="file" />
</intent-filter>

La intención que paso al cliente de correo electrónico del teléfono al enviar el archivo en un archivo adjunto de correo electrónico desde el teléfono:

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("application/octet-stream");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + fullPathString));
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "FiberDroid OTDR Trace File: \"" + ContextMenuFileName + "\"");
sendIntent.putExtra(Intent.EXTRA_TEXT, "This e-mail was sent from the TTI FiberDroid Android application.");
startActivity(Intent.createChooser(sendIntent, "Select E-Mail Application"));

Una vez más, el envío del correo electrónico con el archivo adjunto funciona correctamente ... y si envío el mismo archivo al teléfono desde un cliente de correo electrónico de PC (como Outlook o Thunderbird), puedo abrir el archivo con mi aplicación directamente desde la aplicación de correo electrónico del teléfono. El problema es que si abro el correo electrónico en el teléfono sin pasar por mi PC como intermediario, no puedo abrir el archivo adjunto, la única opción que tengo es "Guardar en tarjeta SD" ...

Entonces, para resumir, tengo 2 correos electrónicos en mi teléfono que son idénticos, con el mismo archivo adjunto y ambos enviados originalmente desde mi aplicación a la misma cuenta (ambos también recibidos desde la misma cuenta), pero el archivo adjunto en el que se envió. mi PC como intermediario innecesario funciona correctamente, y la que se envía y recibe directamente desde mi teléfono no.

¿Algunas ideas? Gracias de antemano.

Respuestas a la pregunta(1)

Su respuesta a la pregunta