Frage

Ich habe eine Möglichkeit gefunden, reine Text-E-Mails mit Absicht zu senden:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new     
String[]{"example@mail.com"}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test");

Aber ich muss HTML-formatierten Text senden.
Der Versuch, setType("text/html") zu setzen, funktioniert nicht.

War es hilfreich?

Lösung

Sie können Spanned Text in Ihrem persönlichen passieren. Um sicherzustellen, dass es die Absicht, sich nur auf Tätigkeiten löst die E-Mail behandeln (zum Beispiel Google Mail und E-Mail-Anwendungen), können Sie ACTION_SENDTO mit Uri beginnend mit dem mailto-Schema verwenden. Dies funktioniert auch, wenn Sie den Empfänger nicht vorher wissen:

final Intent shareIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"));
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "The Subject");
shareIntent.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(new StringBuilder()
    .append("<p><b>Some Content</b></p>")
    .append("<small><p>More content</p></small>")
    .toString())
);

Andere Tipps

Das hat mir für den HTML-Code sehr geholfen, aber ACTION_SENDTO funktionierte bei mir in der jetzigen Form nicht ganz – ich bekam die Meldung „Aktion nicht unterstützt“.Ich habe hier eine Variante gefunden, die Folgendes tut:

http://www.coderanch.com/t/520651/Android/Mobile/no-application-perform-action-when

Und hier ist mein Code, der die beiden miteinander kombiniert:

String mailId="yourmail@gmail.com";
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, 
                                Uri.fromParts("mailto",mailId, null)); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject text here"); 
// you can use simple text like this
// emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Body text here"); 
// or get fancy with HTML like this
emailIntent.putExtra(
         Intent.EXTRA_TEXT,
         Html.fromHtml(new StringBuilder()
             .append("<p><b>Some Content</b></p>")
             .append("<a>http://www.google.com</a>")
             .append("<small><p>More content</p></small>")
             .toString())
         );
startActivity(Intent.createChooser(emailIntent, "Send email..."));

Ich habe (noch) nicht gestartet Android Entwicklung, aber die Dokumentation für die Absicht sagt, dass, wenn Sie EXTRA_TEXT verwenden, sollte der MIME-Typ text / plain sein. Scheint, wie wenn Sie HTML sehen möchten, Sie EXTRA_STREAM verwenden müssten stattdessen ...

Versucht html über gmail App für eine Weile zu schicken, so beschlossen einen kleinen Einblick auf zu verlassen, was ich gefunden habe, nur für den Fall, dass jemand anderes ähnliche Probleme ist zu müssen.

Es scheint so, egal, was ich tat, konnte ich die html nicht fett gedruckten Text in ihm zu haben. Dann habe ich versucht, auf Outlook-Client Vermittlungs- und zu meiner Überraschung war es funktioniert ganz gut. HTML-Markup arbeitete auch auf andere ältere Geräte, aber nicht auf meine (Galaxie s7 API 26), so dass ich dachte, dass gmail app scheint die Unterstützung für HTML-Syntax fallen gelassen zu haben, die auf Vorsatz kommt oder vielleicht jetzt sind Sie verpflichtet, es zu schaffen, in einige sehr spezifischen Art und Weise, die nicht eindeutig dokumentiert ist.

Letzte gmail-Version, die für mich gearbeitet wurde Version 6.9.25 ... auf Nexus 5X API 25 Emulator (Nougat) Und es funktioniert nicht ab Version 7.5.21 ... Auf Nexus 5-fach-API 26 Emulator (Oreo)

Was ist nur versuchen, einige html im Textbereich hinzufügen?

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "<strong>Test</strong>");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top