Como mostrar uma imagem por meio de uma intenção compatível com aplicativos diferentes

Estou tentando compartilhar uma imagem que salvei anteriormente em disco, enviando umIntent.ACTION_SEND. O problema é que não consigo encontrar uma maneira de ser compatível com aplicativos diferentes, o aplicativo oficial do Gmail e o TweetDeck no meu caso.

A imagem que quero compartilhar está contida em umFile:

File agendaFile; 
// its path using getAbsolutePath() -> /data/data/com.mypackage/files/agenda.jpg
Opção A) usando Uri.fromFile
Uri agendaUri = Uri.fromFile(agendaFile); 
// the value -> file:///data/data/com.mypackage/files/agenda.jpg
ResultadosGmail, a imagem é anexada ao email?NÃOTweetdeck, a imagem é adicionada à mensagem do tweet?SIMOpção B) usando Uri.parse
Uri agendaUri = Uri.parse(agendaFile.toURI().toString()); 
// the value -> file:/data/data/com.mypackage/files/agenda.jpg
ResultadosGmail, a imagem é anexada ao email?SIMTweetdeck, a imagem é adicionada à mensagem do tweet?NÃOFinalmente

Em ambos os casos eu envio a intenção assim:

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"));

Então, há outras opções para compartilhar uma imagem? Como é a melhor maneira de compartilhar uma imagem compatível com a maioria dos aplicativos possível?

Obrigado!

questionAnswers(4)

yourAnswerToTheQuestion