Cómo mostrar una imagen a través de un intento de ser compatible con diferentes aplicaciones.

Estoy tratando de compartir una imagen que he guardado previamente en el disco, enviando unaIntent.ACTION_SEND. El problema es que no puedo encontrar una manera de ser compatible con diferentes aplicaciones, la aplicación oficial de Gmail y TweetDeck en mi caso.

La imagen que quiero compartir está contenida en unFile:

File agendaFile; 
// its path using getAbsolutePath() -> /data/data/com.mypackage/files/agenda.jpg
Opción A) usando Uri.fromFile
Uri agendaUri = Uri.fromFile(agendaFile); 
// the value -> file:///data/data/com.mypackage/files/agenda.jpg
ResultadosGmail, ¿está la imagen adjunta al correo electrónico?NOTweetdeck, ¿se ha agregado la imagen al mensaje de tweet?Opción B) utilizando Uri.parse
Uri agendaUri = Uri.parse(agendaFile.toURI().toString()); 
// the value -> file:/data/data/com.mypackage/files/agenda.jpg
ResultadosGmail, ¿está la imagen adjunta al correo electrónico?Tweetdeck, ¿se ha agregado la imagen al mensaje de tweet?NOFinalmente

En ambos casos envío la intención así:

final Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("image/jpg");
intent.putExtra(android.content.Intent.EXTRA_STREAM, agendaUri);
startActivity(Intent.createChooser(intent, "title"));

Entonces, ¿hay alguna otra opción para compartir una imagen? ¿Cómo es la mejor manera de compartir una imagen que sea compatible con la mayoría de las aplicaciones?

¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta