質問

私は意図を使用してプレーンテキストの電子メールを送信する方法を見つけます:

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");

しかし、私は、HTML形式のテキストを送信する必要があります。
setType( "text / htmlの")しようとして動作しません。

役に立ちましたか?

解決

あなたは余分にSpannedテキストを渡すことができます。目的はメールのみ(例えばGmailや電子メールアプリケーション)を扱う活動に解決されることを確実にするには、mailtoのスキームとウリの始まりとACTION_SENDTOを使用することができます。あなたは事前に受信者を知らない場合にも動作します:

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())
);

他のヒント

これはHTMLのための私にとって非常に有用だったが、あるようACTION_SENDTOは私のためにかなりの仕事をしなかった - 私は、メッセージを「アクションがサポートされていません」です。

:私はありませんここにバリアントを見つけました

ます。http://www.coderanch。 COM / T / 520651 /アンドロイド/携帯/無アプリケーションを実行しないアクション-とき

そして、ここでは、2つを組み合わせた私のコードです

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..."));

私は(まだ)ない持っているAndroidの開発を始めたが、目的のドキュメントには、あなたがEXTRA_TEXTを使用する場合は、MIMEタイプがtext / plainであるべきと述べています。あなたがHTMLを表示したい場合は、あなたがEXTRA_STREAMを使用する必要があるだろうように思えるの代わりに...

はそう他の誰かが同様の問題を持っているだけの場合には、私が見つけたものにいくつかの洞察力を残すことにします。

、しばらくの間、Gmailアプリを経由してHTMLを送信しようとされて

私が何をしたかに関係なく、のように思える、私はそれで太字のテキストを持っているHTMLを取得できませんでした。 それから私は、Outlookクライアントに切り替えて、私の驚きに、それがうまく働いていた試してみました。 HTMLマークアップもなく、鉱山(銀河のS7 API 26)に、他の古いデバイスに取り組んでいたので、私は考え出し、そのGmailアプリは、あなたがそれを提供するために必要だ、今多分意図から来ているか、HTML構文のサポートを落としているようです明確に文書化されていないいくつかの非常に特定の方法でます。

私のために働いた

最終Gmailのバージョンが6.9.25だった...ネクサス5X API 25エミュレータ上(ヌガー) そして、それはネクサス5倍API 26エミュレータ(オレオ)で...バージョン7.5.21を開始する動作を停止します。

あなたは "EXTRA_HTML_TEXT" のための "EXTRA_TEXT" を変更する必要があります。

https://developer.android.com/reference/android /content/Intent.html#EXTRA_HTML_TEXTする

何についてちょうどテキスト領域に一部のHTMLを追加しようと?

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "<strong>Test</strong>");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top