5

INTENT.ACTION_SEND または ACTION.SENDTO を使用しているかどうかに関係なく、電子メールの意図を送信しようとすると、ストックの Sony Xperia Active 電子メール クライアントを使用すると、件名と受信者は正常に表示されますが、本文は、貼り付けられた標準のコメントを除いて空です。クライアント。私のSamsung Galaxy Note 2では、同じコードが魅力的に機能します。

    if(mPrefs.getBoolean("alternative_email_client", false)){
        Intent send = new Intent(Intent.ACTION_SENDTO);
        String uriText = "mailto:" + Uri.encode(emailStrings[6]) + 
               "?subject=" + Uri.encode("The subject") + 
               "&body=" + Uri.encode(emailBody);
        Uri uri = Uri.parse(uriText);
        send.setData(uri);
        startActivity(Intent.createChooser(send, "Email verschicken"));
    } else {
        Intent send = new Intent(Intent.ACTION_SEND);
        send.putExtra(Intent.EXTRA_EMAIL, emailStrings[6]);
        send.putExtra(Intent.EXTRA_SUBJECT, "The Subject");
        send.putExtra(Intent.EXTRA_TEXT, emailBody);
        startActivity(Intent.createChooser(send, "Email verschicken"));
    }
4

4 に答える 4

3

gmail には body プロパティを使用し、その他のメールには EXTRA_TEXT を使用します。samsung email、oneplus email、LG email などのさまざまなメール アプリをテストしましたが、それらは EXTRA_TEXT をサポートしているようですが、gmail は「本文」プロパティをサポートしています。

 fun composeEmailMessage(context: Context,  subject: String, body: String, emails: Array<String> = arrayOf()) {
val intent = Intent(Intent.ACTION_SENDTO)
intent.data = Uri.parse("mailto:")
intent.putExtra(Intent.EXTRA_EMAIL, emails)
intent.putExtra(Intent.EXTRA_SUBJECT, subject)
intent.putExtra(Intent.EXTRA_TEXT, body)//other emails app
intent.putExtra("body", body)//gmail
if (intent.resolveActivity(context.packageManager) != null) {
    context.startActivity(Intent.createChooser(intent, "Send email via..."))
}

}

于 2020-06-17T17:18:06.170 に答える
0

メッセージの種類を追加してみてください

...
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, myMessage);
...
于 2013-05-11T22:02:13.780 に答える