Отправить письмо Намерение - PullRequest
520 голосов
/ 02 января 2012
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(Intent.EXTRA_EMAIL, "emailaddress@emailaddress.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "I'm email body.");

startActivity(Intent.createChooser(intent, "Send Email"));

Приведенный выше код открывает диалоговое окно, в котором отображаются следующие приложения: - Bluetooth, Google Docs, Yahoo Mail, Gmail, Orkut, Skype и т. Д.

На самом деле я хочу отфильтровать эти параметры списка.Я хочу показывать только приложения, связанные с электронной почтой, например, Gmail, Yahoo Mail.Как это сделать?

Я видел такой пример в приложении «Android Market».

  1. Открыть приложение Android Market
  2. Откройте любое приложение, в котором разработчик указал свой адрес электронной почты.(Если вы не можете найти такое приложение, просто откройте мое приложение: - market: // details? Id = com.becomputer06.vehicle.diary.free, ИЛИ поиск по «Дневнику автомобиля»)
  3. Прокрутите вниз до«РАЗРАБОТЧИК»
  4. Нажмите «Отправить электронную почту»

В этом диалоговом окне отображаются только приложения электронной почты, например, Gmail, Yahoo Mail и т. Д. Он не показывает Bluetooth, Orkut и т. Д. Какой код создает такойдиалог?

Ответы [ 31 ]

0 голосов
/ 09 декабря 2017
            Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
                    "mailto", email, null));
            if (emailIntent.resolveActivity(context.getPackageManager()) != null) {
                context.startActivity(Intent.createChooser(emailIntent, "Send Email..."));
            } else {
                Toast.makeText(context, "No apps can perform this action.", Toast.LENGTH_SHORT).show();
            }
...