Android: como anexar uma imagem temporária gerada a um email?

Tenho uma imagem gerada programaticamente que desejo enviar como anexo por meio doACTION_SEND eEXTRA_STREAM método.

Mas como eu faço isso?

Minha primeira tentativa (escrevendo para o meucontext.getCacheDir() caminho do arquivo baseado) parecia funcionar na visualização do Gmail (nenhuma visualização de imagem, mas o nome e o ícone do arquivo anexado estavam visíveis), mas o anexo nunca chegou ao lado do destinatário. Eu acho que isso tem algo a ver com permissões no arquivo gerado, mas como evitar isso? Preciso definir configurações mais permissivas nesses arquivos gerados (para que a atividade do Gmail possa acessar)? Isso é possível para a pasta de cache do aplicativo?

Existe outro local de arquivo mais adequado para gravar meus arquivos? Eu considerei a pasta de downloads, mas acho que seria um local estranho para algo que só precisa existir até que seja enviado por email.

Eu até tentei codificar minha imagem puramente em umdata:image/png;base64,ABCD... estilo URI. Isso também apareceu na visualização do Gmail (ícone de anexo, mas sem nome de arquivo), mas não resultou em um anexo do lado do destinatário.

Alguém foi capaz de anexar uma imagem gerada de uma só vez a uma intenção de email por qualquer meio? Que opções posso ter esquecido?

questionAnswers(3)

yourAnswerToTheQuestion