Как прикрепить файлы через почту в андроид - PullRequest
1 голос
/ 07 февраля 2012

Привет, во-первых, я хочу сказать, используя отправителя gmail. Чтобы отправлять письма по кнопке, нажмите в моем приложении, где я получил Решение отсюда

Теперь в приведенном выше коде я не могуприкрепите файлы .но позже я увидел решение от Stack over flow, чтобы решить эту проблему: в файле "GMailSender.java" были внесены некоторые изменения, измененная ссылка Here

howКогда-либо есть часть добавления, чтобы прикрепить файл, теперь моя проблема в том, что я не понимаю измененную часть. вот старая часть

публичная синхронизированная пустота sendMail (строковая тема, строковое тело, строковый отправитель, строковые получатели)

theизмененная часть:

публичный синхронизированный void sendMail (тема строки, тело строки, отправитель строки, получатели строки, вложение файла)

это не дублированный вопрося просто хочу узнать, что это за часть «Вложение файла» и какой тип или метод я должен реализовать, чтобы присоединить файл, если у вас есть какие-либо сомнения, перейдите по этим двум ссылкам и, пожалуйста, заранее найдите решение, спасибо

Ответы [ 2 ]

4 голосов
/ 07 февраля 2012

Вы передаете объект File с именем attachment.Это будет все, что вы хотите прикрепить к вашей электронной почте.

Вы бы прикрепили его к сообщению электронной почты, например:

MimeMessage message = new MimeMessage(session);
message.setSender(new InternetAddress(sender));
message.setSubject(subject);

MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(body);

MimeBodyPart mbp2 = new MimeBodyPart();
FileDataSource fds = new FileDataSource(attachment); //set attachment to filedatasource
mbp2.setDataHandler(new DataHandler(fds)); //add the filedatasource object to your 2nd mimebodypart
mbp2.setFileName(fds.getName());

Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1); 
mp.addBodyPart(mbp2);

message.setContent(mp);
...send email...

Редактировать: Никогда не приходилось получать изображение с SD-карты, но я думаю, что вы легко можете создать объект Fileпримерно так:

File imageFile = new File("path to image on sd card");

Затем вы вызываете свой метод sendMail, передавая этот файловый объект.

1 голос
/ 07 февраля 2012

Попробуйте это

Intent i = new Intent(Intent.ACTION_SEND);  
i.setType("message/rfc822") ; // use from live device
i.putExtra(Intent.EXTRA_EMAIL, new String[]{"test@gmail.com"});  
i.putExtra(Intent.EXTRA_SUBJECT,"subject goes here");  
i.putExtra(Intent.EXTRA_TEXT,"body goes here");  
i.putExtra(Intent.EXTRA_STREAM, new File(""));
startActivity(Intent.createChooser(i, "Select email application."));
...