4

Android 4.1 以降のデバイスで問題が発生しています。IntentHTML リンクを含むメールを (経由で) 送信したいと考えています。私はこれを何ヶ月も行っていたので、これが Android 2.x デバイスで動作することを知っています。

Javaコードは次のとおりです。

startActivity(Intent.createChooser(
new Intent(Intent.ACTION_SEND)            
.putExtra(Intent.EXTRA_SUBJECT, "A subject")  
.setType("text/html")
.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("Some text ... <a href="http://www.weburl.com">Some text</a>)), "Email"));

Android 4.1 の場合: このコードを使用すると、Gmail で期待どおりにテキストが表示され、リンクが青と下線で表示されます。しかし、リンクなしでこのメールを受け取ります。

Android 2.x の場合: すべてが完璧です。リンクが記載されたメールを受け取ります

誰かがこの問題を解決するのを手伝ってくれますか?

4

1 に答える 1

4

電子メール アプリケーションは html を完全にはサポートしていないと思います。次のコードがあります。

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto","", null))            
                .putExtra(Intent.EXTRA_SUBJECT, "LIJSTJE fb")  
                .putExtra(Intent.EXTRA_TEXT, Html.fromHtml(new StringBuilder()
                 .append("<p style='font-weight:bold;'>Some Content</p>")
                 .append("<a>http://www.google.com</a><br/>")
                 .append("<a href='http://www.facebook.com'>facebook</a>")
                 .append("<small><p>More content</p></small>")
                 .toString()));

                startActivity(Intent.createChooser(emailIntent, "Send email..."));

期待どおりに段落と改行が追加されます。ただし、スタイリングはそうではありません。また、完全な URL を印刷するとリンクが表示されますが、Facebook のリンクのようにすると表示されません。

電話の電子メール クライアントがスタイリングを削除し、リンクが表示されているテキストにリンクしていることを確認していると思われます。そのため、ユーザーはリンク先を知っています。また、考えてみれば、ネイティブの Gmail アプリにはスタイリング オプションがありません。そのため、スタイリングの削除動作が発生する可能性があります。

少なくともそれが私の理論です。:)

(注: ネイティブの Gmail アプリケーションでのみテストしました!)

また、インテント タイプを SEND から SENDTO に変更しました。この方法では、電子メール クライアントのみを使用し、他のアプリケーションは使用しません。また、setType() メソッドを使用すると「アプリケーションが見つかりません」というエラーが発生するため、このメソッドを削除しました。

于 2013-01-28T09:22:20.447 に答える