当我在kotlin中创建电子邮件意图时,没有直接添加收件人邮件

When I make an e-mail intent in kotlin, the recipient mail is not added directly

binding.navView.setNavigationItemSelectedListener {
            when(it.itemId){
                R.id.requestWallpaper->{
                    val emailIntent=Intent().apply {
                        action=Intent.ACTION_SEND
                        data= Uri.parse("mailto:")
                        type="text/plain"
                        putExtra(Intent.EXTRA_EMAIL,"test@gmail.com")
                        putExtra(Intent.EXTRA_SUBJECT,"request wallpaper")
                        putExtra(Intent.EXTRA_TEXT,"request wallpaper")
                    }
                    if (emailIntent.resolveActivity(this!!.packageManager) !=null){
                        emailIntent.setPackage("com.google.android.gm")
                        startActivity(emailIntent)
                    }else{
                        Toast.makeText(this@MainActivity,"No app available to send email!!",Toast.LENGTH_SHORT).show()
                    }
                }


当导航抽屉打开时,用户会想要发出壁纸请求,当他按下图像按钮时,我希望他现在通过 gmail 发送电子邮件至 test@gmail.com,但是test@gmail.com 没有直接添加到 gmail.When 的“收件人”部分 我 运行 它在模拟器上,添加了电子邮件主题和电子邮件文本,但收件人电子邮件 -没有添加邮件,为什么?

所以 离这里很近,唯一缺少的是 Intent.EXTRA_EMAIL 额外内容。 属性 需要一个 String 值数组,而不是单个 String.

binding.navView.setNavigationItemSelectedListener {
    when (it.itemId) {
        R.id.requestWallpaper -> {
            val emailIntent = Intent().apply {
                action = Intent.ACTION_SEND
                data = Uri.parse("mailto:")
                type = "text/plain"
                putExtra(Intent.EXTRA_EMAIL, arrayOf("test@gmail.com"))
                putExtra(Intent.EXTRA_SUBJECT, "request wallpaper")
                putExtra(Intent.EXTRA_TEXT, "request wallpaper")
            }
            if (emailIntent.resolveActivity(this.packageManager) != null) {
                emailIntent.setPackage("com.google.android.gm")
                startActivity(emailIntent)
            } else {
                Toast.makeText(
                    this@MainActivity,
                    "No app available to send email!!",
                    Toast.LENGTH_SHORT
                ).show()
            }
        }
    }
}

我不知道您是否也需要 type="text/plain" 属性,但这应该不会有什么坏处。此外,如果您跳过 setPackage 步骤,它将允许 OS 询问要使用哪个电子邮件应用程序。