Android: используя намерение электронной почты отправлять электронную почту, возможно изменить сообщение перед отправкой?

Я использую:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

чтобы отправить электронное письмо, мне нужно добавить нижний колонтитул в сообщение, есть ли какой-либо прослушиватель или каким-то образом, что я могу редактировать сообщение, когда пользователь нажимает "отправить"?

Спасибо!

Edit:

ниже - код, который я использовал:

private void sendEmail(String recipient, String subject, String message) {
 try {
 final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
 emailIntent.setType("plain/text");
 if (recipient != null) emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{recipient});
 if (subject != null) emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
 if (message != null) emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
 startActivity(Intent.createChooser(emailIntent, "Send mail..."));
 } catch (ActivityNotFoundException e) {
 // cannot send email for some reason
 }
}

Нет поля типа:

android.content.Intent.EXTRA_EMAIL

который позволяет мне сообщать информацию о намерениях.

3 ответа

Если письмо отправлено из вашего собственного приложения, вам нужно будет добавить нижний колонтитул, прежде чем уволить намерение.

Если письмо отправляется с использованием любого другого приложения (включая приложение электронной почты по умолчанию), то нет, вы не сможете его изменить.

ИЗМЕНИТЬ:

В приведенном выше примере вам просто нужно добавить подпись к строке message в любое время до строки

if (message != null) emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);


@Override
 public boolean shouldOverrideUrlLoading(WebView view, String url) {
 if (url.startsWith("mailto:")) { 
 try {
 Intent emailIntent = new Intent(Intent.ACTION_SEND, Uri.parse(url));
 emailIntent.setType("message/rfc822");
 String recipient = url.substring( url.indexOf(":")+1 );
 if (TextUtils.isEmpty(recipient)) recipient = "[removed_email]";
 emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{recipient});
 emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, mContext.getString(R.string.email_subject));
 emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, mContext.getString(R.string.email_message, " "));
 mContext.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
 }
 catch (Exception ex) {}
 }
 return true;
 }


Вы могли бы..

  • Создайте форму в своем приложении с полями To, Subject и Text TextEdit.

  • Сохраните эти пользовательские входы как переменные String.

  • Добавить/изменить переменные String

  • Передайте завершенные переменные в ваш emailIntent.putExtra()

Затем ваши пользователи могут решить, понравятся ли они изменениям или нет, и просто нажмите отправить.

licensed under cc by-sa 3.0 with attribution.