如何在 Android 12 的意图中包含电子邮件收件人信息?
How to include email recipient information in intents on Android 12?
自 Android 早期以来,我一直在使用 recommended way 来填充电子邮件意图。这包括收件人、主题和正文。
但是在 Android 12 - 执行此操作时收件人字段总是被忽略,其他一切都完全相同。
这里有什么问题?这是 OS 中的错误吗?我默认使用 gmail 进行测试,但同样适用于其他电子邮件客户端,仍然只在 Android 12.
private fun createIntent(
metadata: String
): Intent {
val uri = Uri.parse("mailto:")
return Intent(ACTION_SENDTO)
.setData(uri)
.putExtra(
EXTRA_EMAIL,
arrayOf("example@gmail.com") //Ive also tried without arrayOf, no difference.
)
.putExtra(
EXTRA_SUBJECT,
"Feedback"
)
.putExtra(
EXTRA_TEXT,
metadata
)
}
似乎将 ACTION_SEND
与 selector
块结合使用就可以了。这适用于所有 API 级别,低至 API 21。我会让其他人解释为什么会这样,但重要的是它有效。
private fun createIntent(
metadata: String
): Intent {
return Intent(ACTION_SEND)
.putExtra(
EXTRA_EMAIL,
arrayOf(EMAIL)
)
.putExtra(
EXTRA_SUBJECT,
TITLE
)
.putExtra(
EXTRA_TEXT,
metadata
)
.apply {
selector = Intent(ACTION_SENDTO).setData(Uri.parse("mailto:"))
}
}
自 Android 早期以来,我一直在使用 recommended way 来填充电子邮件意图。这包括收件人、主题和正文。
但是在 Android 12 - 执行此操作时收件人字段总是被忽略,其他一切都完全相同。
这里有什么问题?这是 OS 中的错误吗?我默认使用 gmail 进行测试,但同样适用于其他电子邮件客户端,仍然只在 Android 12.
private fun createIntent(
metadata: String
): Intent {
val uri = Uri.parse("mailto:")
return Intent(ACTION_SENDTO)
.setData(uri)
.putExtra(
EXTRA_EMAIL,
arrayOf("example@gmail.com") //Ive also tried without arrayOf, no difference.
)
.putExtra(
EXTRA_SUBJECT,
"Feedback"
)
.putExtra(
EXTRA_TEXT,
metadata
)
}
似乎将 ACTION_SEND
与 selector
块结合使用就可以了。这适用于所有 API 级别,低至 API 21。我会让其他人解释为什么会这样,但重要的是它有效。
private fun createIntent(
metadata: String
): Intent {
return Intent(ACTION_SEND)
.putExtra(
EXTRA_EMAIL,
arrayOf(EMAIL)
)
.putExtra(
EXTRA_SUBJECT,
TITLE
)
.putExtra(
EXTRA_TEXT,
metadata
)
.apply {
selector = Intent(ACTION_SENDTO).setData(Uri.parse("mailto:"))
}
}