当我在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 询问要使用哪个电子邮件应用程序。
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 询问要使用哪个电子邮件应用程序。