Intent.EXTRA_EMAIL未填充"收件人"字段

use*_*ser 87 android android-intent

我试图使用从我的应用程序发送电子邮件,但电子邮件的收件人字段将不会填充.如果我添加代码来填写主题或文本,它们工作正常.只有To字段不会填充.

我也尝试将类型更改为"text/plain"和"text/html",但我遇到了同样的问题.有人可以帮忙吗?

public void Email(){

    Intent emailIntent = new Intent(Intent.ACTION_SEND); 
    emailIntent.setType("message/rfc822");  //set the email recipient
    String recipient = getString(R.string.IntegralEmailAddress);
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL  , recipient);
    //let the user choose what email client to use
    startActivity(Intent.createChooser(emailIntent, "Send mail using...")); }
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用的电子邮件客户端是Gmail

MKJ*_*ekh 212

我想你不及格recipientarray of string

应该是这样的

emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] { "someone@gmail.com" });
Run Code Online (Sandbox Code Playgroud)

  • Android ...你为什么这么可怜? (17认同)
  • 哈哈哈,你让我笑了+1百万@BugsHappen ..原因:它是一个开源但文档不是100%令人满意,设备制造商根据自己的需要进行修改(大多数设备都便宜且无用),开发人员不读"开发人员". android.com". (4认同)
  • 还要确保你*不*做`intent.putExtra(Intent.EXTRA_EMAIL,list.toArray())`**它不会工作,因为list.toArray()产生Object []而不是String []** (4认同)

Vin*_*9-द 7

在 Kotlin 中 - Android

fun sendMail(
        activity: Activity,
        emailIds: Array<String>,
        subject: String,
        textMessage: String
    ) {


        val emailIntent = Intent(Intent.ACTION_SEND)
        emailIntent.type = "text/plain"
        emailIntent.putExtra(Intent.EXTRA_EMAIL, emailIds)
        emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject)
        emailIntent.putExtra(Intent.EXTRA_TEXT, textMessage)
        emailIntent.setType("message/rfc822")
        try {
            activity.startActivity(
                Intent.createChooser(
                    emailIntent,
                    "Send email using..."
                )
            )
        } catch (ex: ActivityNotFoundException) {
            Toast.makeText(
                activity,
                "No email clients installed.",
                Toast.LENGTH_SHORT
            ).show()
        }
    }
Run Code Online (Sandbox Code Playgroud)

您也可以使用 [ val emailIntent = Intent(Intent.ACTION_SENDTO)] 调用直接电子邮件客户端

//argument of function
val subject = "subject of you email"
val eMailMessageTxt = "Add Message here"

val eMailId1 = "emailId1@gmail.com"
val eMailId2 = "emailId2@gmail.com"
val eMailIds: Array<String> = arrayOf(eMailId1,eMailId2)

//Calling function
sendMail(this, eMailIds, subject, eMailMessageTxt)
Run Code Online (Sandbox Code Playgroud)

我希望这段代码片段能够对 kotlin 开发者有所帮助。