E-Mail per Google Mail senden

Ich habe einen Code, der die Absicht hat, E-Mails zu senden

Intent i = new Intent(Intent.ACTION_SEND); i.setType("text/plain"); i.putExtra(Intent.EXTRA_EMAIL, new String[] { to }); i.putExtra(Intent.EXTRA_SUBJECT, subject); i.putExtra(Intent.EXTRA_TEXT, msg); try { startActivity(Intent.createChooser(i, "Send mail...")); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(Start.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show(); } 

Aber wenn diese Absicht gefeuert wird, sehe ich viele Artikel in der Liste wie sms app, gmail app, facebook app und so weiter.

  • Senden Sie HTML-E-Mail mit Gmail 6.11.6 mit Absicht
  • Wie kann ich das filtern und nur gmail App (oder vielleicht nur E-Mail-Apps) aktivieren?

  • Styling titleDivider im Dialog
  • Wie kann ein Knopf den Fokus bekommen?
  • Wie beenden Sie () eine Aktivität, wenn die Home-Taste gedrückt wurde
  • SetPreviewDisplay und setDisplayOrientation
  • Retrofit werfen IllegalArgumentException Ausnahme für asynchrone FormUrlEncoded DELETE call
  • Klicken Sie auf eine Schaltfläche, um die Sprache zu wechseln
  • 6 Solutions collect form web for “E-Mail per Google Mail senden”

    Verwenden Sie android.content.Intent.ACTION_SENDTO ( new Intent(Intent.ACTION_SENDTO); ), um nur die Liste der E-Mail-Clients zu erhalten, ohne Facebook oder andere Apps. Nur die E-Mail-Kunden.

    Ich würde nicht vorschlagen, dass Sie direkt an die E-Mail-App kommen. Lassen Sie den Benutzer seine Lieblings-E-Mail-App wählen. Beschränke ihn nicht

    Wenn Sie ACTION_SENDTO verwenden, funktioniert putExtra nicht, um Subjekt und Text der Absicht hinzuzufügen. Verwenden Sie Uri, um das Thema und den Text des Körpers hinzuzufügen.

    Beispiel

     Intent send = new Intent(Intent.ACTION_SENDTO); String uriText = "mailto:" + Uri.encode("email@gmail.com") + "?subject=" + Uri.encode("the subject") + "&body=" + Uri.encode("the body of the message"); Uri uri = Uri.parse(uriText); send.setData(uri); startActivity(Intent.createChooser(send, "Send mail...")); 

    Die akzeptierte Antwort funktioniert nicht am 4.1.2. Das sollte auf allen Plattformen funktionieren:

     Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts( "mailto","abc@gmail.com", null)); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "EXTRA_SUBJECT"); startActivity(Intent.createChooser(emailIntent, "Send email...")); 

    Hoffe das hilft.

    Igor Popovs Antwort ist 100% richtig, aber falls du eine Fallback-Option wünschst, verwende ich diese Methode:

     public static Intent createEmailIntent(final String toEmail, final String subject, final String message) { Intent sendTo = new Intent(Intent.ACTION_SENDTO); String uriText = "mailto:" + Uri.encode(toEmail) + "?subject=" + Uri.encode(subject) + "&body=" + Uri.encode(message); Uri uri = Uri.parse(uriText); sendTo.setData(uri); List<ResolveInfo> resolveInfos = getPackageManager().queryIntentActivities(sendTo, 0); // Emulators may not like this check... if (!resolveInfos.isEmpty()) { return sendTo; } // Nothing resolves send to, so fallback to send... Intent send = new Intent(Intent.ACTION_SEND); send.setType("text/plain"); send.putExtra(Intent.EXTRA_EMAIL, new String[] { toEmail }); send.putExtra(Intent.EXTRA_SUBJECT, subject); send.putExtra(Intent.EXTRA_TEXT, message); return Intent.createChooser(send, "Your Title Here"); } 

    Dies ist zitiert von Android offiziellen doc, ich habe es auf Android 4.4 getestet und funktioniert perfekt. Weitere Beispiele finden Sie unter https://developer.android.com/guide/components/intents-common.html#Email

      public void composeEmail(String[] addresses, String subject) { Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse("mailto:")); // only email apps should handle this intent.putExtra(Intent.EXTRA_EMAIL, addresses); intent.putExtra(Intent.EXTRA_SUBJECT, subject); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } } 

    Ersetzen

     i.setType("text/plain"); 

    mit

     // need this to prompts email client only i.setType("message/rfc822"); 
     Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts( "mailto","opinions@gmail.com.com", null)); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "IndiaTV News - Mobile App Feedback"); emailIntent.putExtra(Intent.EXTRA_TEXT,Html.fromHtml(Settings.this.getString(R.string.MailContent))); startActivityForResult(Intent.createChooser(emailIntent, "Send email..."),0); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.