Olá, pessoal. Pesquisei e tentei várias soluções, porém nenhuma funcionou.
Estou fazendo meu tcc, e uma das funcionalidades da aplicação é enviar um email com um arquivo gerado em anexo usando um client externo. O email vai, mas o anexo, não.
Trecho do código :
private void exportToEmailClient() {
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setType("message/txt");
intent.putExtra(Intent.EXTRA_SUBJECT, getEmailSubject());
intent.putExtra(Intent.EXTRA_TEXT, getEmailBody());
File file = getAttachment();
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
intent.setData(Uri.parse("mailto:"+ getMailTo()));
startActivity(Intent.createChooser(intent, "Selecione um cliente"));
}
private String getMailTo() {
return preferences.getString(Constants.PREFERENCES_INFO.DOCTOR_EMAIL, "");
}
private File getAttachment() {
return new File(Environment.getExternalStorageDirectory()+File.separator+"operacaotcc", "arquivo.txt");
}
private String getEmailSubject() {
return preferences.getString(Constants.PREFERENCES_INFO.PATIENT_NAME, "") + "' pressure historic";
}
private String getEmailBody() {
return "Email Body TODO";
}
Tudo está sendo feito para fins de teste, por enquanto (arquivo dummy).
Ao executar, a lista de clients é mostrada. Seleciono qualquer um dos que tenho (Gmail, Hotmail ou o nativo do android), mas nenhum deles deixa setado o anexo que especifico no Intent.EXTRA_STREAM.
Agradeço qualquer ajuda.