email - 直接从应用程序发送电子邮件,无需打开选择器 (Kotlin)
问题描述
我需要能够将用户数据从我的应用程序直接发送到电子邮件,而无需打开应用程序选择器。基本上。我需要用户能够授予发送电子邮件的权限(与他们必须授予发送 SMS 权限的方式相同),然后每次他们将数据添加到各个字段并单击提交按钮时,它都会发送将其条目的内容发送到指定的电子邮件地址。createChooser 我假设正在调用应用程序选择器,但我无法弄清楚没有它我该怎么做?现有示例代码如下。我在任何地方都找不到直接的答案,非常感谢任何帮助。
val gasb: Button = findViewById<Button>(R.id.gasb)
gasb.setOnClickListener {
val data:String = "1 GAS BOTTLE USED "
startActivity(Intent.createChooser(getEmailIntent("firstname.surname@email.com", "SUBJECT",
data),
"Send mail"))
}
}
//The below works - Just need to work out how to send without opening email client
private fun getEmailIntent(email: String, subject: String?, content: String?): Intent? {
val intent = Intent(Intent.ACTION_SEND)
intent.type = "message/rfc822"
intent.putExtra(Intent.EXTRA_EMAIL, arrayOf(email))
intent.putExtra(Intent.EXTRA_SUBJECT, subject)
intent.putExtra(Intent.EXTRA_TEXT, content)
return getIntent(intent, true)
}
private fun getIntent(intent: Intent, isNewTask: Boolean): Intent? {
return if (isNewTask) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) else intent
}
}
解决方案
推荐阅读
- json - Spring Boot 无限递归
- vb.net - 在 vb.net 设计器生成的系统中在运行时设置 MS Access 密码
- java - 您将如何根据先验条件更新哈希图中的值?
- spring-boot - 如何使用zuul代理过滤器路由到外部url
- angular - 支付完成后关闭 InAppBrowser
- tensorflow - Keras TimeDistributed Not Masking CNN 模型
- javascript - 为什么 JavaScript 解构不能内联工作
- arrays - Postgresql:自定义类型+数组组合
- elasticsearch - 查询 Elastic Search 更新数据库的功能
- java - “错误:找不到符号”符号在 Switch 语句中