Android: Используя электронную почту для отправки электронной почты, возможно ли изменить сообщение непосредственно перед отправкой? - PullRequest
3 голосов
/ 08 июня 2011

Я использую:

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

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

Спасибо!

Редактировать:

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

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 ]

2 голосов
/ 08 июня 2011

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

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

РЕДАКТИРОВАТЬ :

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

if (message != null)    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
1 голос
/ 06 марта 2013
@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 = "loco@wareninja.com";
                    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;
        }
0 голосов
/ 19 июня 2012

Вы можете ..

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

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

  3. Добавление / редактирование строковых переменных

  4. Передача финализированных переменных в ваши emailIntent.putExtra ()

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

...