我是编程新手。尝试使用此代码段打开Gmail。但问题是putExtra(Intent.EXTRA_EMAIL,strTo)没有给予任何结果。putExtra(Intent.EXTRA_SUBJECT,strSubject)工作正常。我也尝试传递数组,但结果相同。有人可以使用Kotlin为该电子邮件发件人提供建议吗?
val etTo = findViewById<EditText>(R.id.etTo)
val etSubject = findViewById<EditText>(R.id.etSubject)
val emailBtn = findViewById<Button>(R.id.emailBtn)
emailBtn.setOnClickListener {
val strTo = etTo.text.toString()
val strSubject = etSubject.text.toString()
val intent = Intent(Intent.ACTION_SENDTO).apply {
data = Uri.parse("mailto")
putExtra(Intent.EXTRA_EMAIL, strTo)
putExtra(Intent.EXTRA_SUBJECT, strSubject)
startActivity(intent,)
composeEmail("$strTo", "$strSubject")
}
}
fun composeEmail(addresses: String, subject: String) {
val intent = Intent(Intent.ACTION_SENDTO).apply {
data = Uri.parse("mailto:")
putExtra(Intent.EXTRA_EMAIL, addresses)
putExtra(Intent.EXTRA_SUBJECT, subject)
}
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}
}
我尝试使用数组。
有趣的撰写电子邮件(地址:数组,主题:字符串)
2条答案
按热度按时间rt4zxlrg1#
您需要使用type属性来指定要发送的数据类型,并且需要以字符串数组的形式传递收件人的电子邮件地址。请记住,使用此方法只会打开用户的默认电子邮件应用程序,并预先填写收件人的电子邮件地址和主题。用户仍需要手动编写和发送电子邮件。
ddrv8njm2#
看起来你试图传递给
putExtra(Intent.EXTRA_EMAIL, strTo)
的是一个字符串而不是一个字符串数组。Intent.EXTRA_EMAIL
常量用于传递一个电子邮件地址数组给一个电子邮件应用,所以你需要传递一个字符串数组,格式为“name@email.com“。下面是一个如何修改代码以使用字符串数组的示例: