É o seguinte, estou desenvolvendo um aplicativo onde meus clientes possam me enviar alguns dados e junto com eles um anexo via Gmail, o único problema é que quando eu tento enviar um anexo o programa para de funcionar e fecha, eu tentei utilitizando attachment.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif")); e funcionou perfeitamente, porém quando tento pegar um arquivo do diretório do celular usando attachment.setPath("") o aplicativo para de funcionar e fecha. os passos que eu segui se encontra no link https://commons.apache.org/proper/commons-email/userguide.html
E aqui está o código do meu programa:
Se alguem poder me explicar o porquê do programa fecha eu agradeço de coração
MainActivity mainanexo = new MainActivity();
String anexo = mainanexo.contato.toString();
try {
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(anexo);
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("CodiUnlock");
attachment.setName("Imagem.png");
MultiPartEmail messageBodyPart = new MultiPartEmail();
messageBodyPart.setHostName("smtp.googlemail.com");
messageBodyPart.setSmtpPort(465);
messageBodyPart.setAuthenticator(new DefaultAuthenticator("**********@gmail.com", "******"));
messageBodyPart.setSSLOnConnect(true);
messageBodyPart.setFrom("*********@gmail.com");
messageBodyPart.addTo("********@gmail.com");
messageBodyPart.setSubject("Unlock");
messageBodyPart.setMsg(mMessage);
messageBodyPart.attach(attachment);
messageBodyPart.send();
} catch (EmailException e) {
e.printStackTrace();
}
Aqui de onde eu pego o anexo na class MainActivity
anexo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent imagem = new Intent(Intent.ACTION_GET_CONTENT);
imagem.addCategory(Intent.CATEGORY_OPENABLE);
imagem.setType("*/*")
startActivityForResult(imagem,1);
}
});
Aqui é a escuta para pegar o diretorio do arquivo (/document/primary:DCIM/Camera/image.jpg)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
Uri selectedImage = data.getData();
File a = new File(selectedImage.getPath());
contato.setText(a.toString()); //Setei no EditText(contatos) Só por um acaso mesmo.
}