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
我想你不及格recipient的array of string
应该是这样的
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] { "someone@gmail.com" });
Run Code Online (Sandbox Code Playgroud)
在 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 开发者有所帮助。
| 归档时间: |
|
| 查看次数: |
28180 次 |
| 最近记录: |