在显示电子邮件列表的 Android 中启动 Gmail/Email Intent
Start Gmail / Email Intent in Android showing list of emails
我已经实现了 firebase 电子邮件 link 登录,生成邮件后我想打开 phone 的电子邮件应用程序,以便用户可以直接打开已发送的邮件.
fun startEmailApp(context: Context) {
val emailPackage = "com.google.android.gm"
val isGmailInstalled = isAppInstalled(context, emailPackage)
val intent = Intent(Intent.ACTION_SEND)
context.startActivity(Intent.createChooser(intent, "choose an email client"))
if (isGmailInstalled) {
intent.type = "text/html"
intent.setPackage(emailPackage)
context.startActivity(intent)
} else {
intent.type = "message/rfc822";
context.startActivity(Intent.createChooser(intent, "choose an email client"))
}
}
此实现将打开 gmail,但在撰写电子邮件屏幕中。我如何设法在收件箱中显示电子邮件列表?
I want to open the phone's email app
emailPackage
值将尝试打开 GMail,而不是用户选择的电子邮件应用程序。
顺便说一句,请注意您的 isAppInstalled()
可能会在 Android 11 上中断,除非您添加 <queries>
元素以将您找到 Gmail 的能力列入白名单。我们通过 PackageManager
查找其他应用程序的能力现在受到限制。
How do I manage to show the list of emails in the inbox instead?
没有要求电子邮件应用程序必须导出 activity,更不用说具有已记录和受支持的 <intent-filter>
。
鉴于您显然只想支持 Gmail,您可以尝试打开他们的 ACTION_MAIN
/CATEGORY_LAUNCHER
activity。对于启动器,将会有其中之一,并且可能用户可以从那里轻松到达他们的收件箱。
如果您想支持范围更广的电子邮件应用程序,您可以:
- 删除
emailPackage
和使用它的代码
- 使用
Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"))
作为 MAIN
/LAUNCHER
Intent
的选择器,以显示电子邮件客户端的选择器(如果需要)
有关选择器的更多信息,请参阅 ,尽管在那种情况下他们使用它来优化 ACTION_SEND
Intent
.
我已经实现了 firebase 电子邮件 link 登录,生成邮件后我想打开 phone 的电子邮件应用程序,以便用户可以直接打开已发送的邮件.
fun startEmailApp(context: Context) {
val emailPackage = "com.google.android.gm"
val isGmailInstalled = isAppInstalled(context, emailPackage)
val intent = Intent(Intent.ACTION_SEND)
context.startActivity(Intent.createChooser(intent, "choose an email client"))
if (isGmailInstalled) {
intent.type = "text/html"
intent.setPackage(emailPackage)
context.startActivity(intent)
} else {
intent.type = "message/rfc822";
context.startActivity(Intent.createChooser(intent, "choose an email client"))
}
}
此实现将打开 gmail,但在撰写电子邮件屏幕中。我如何设法在收件箱中显示电子邮件列表?
I want to open the phone's email app
emailPackage
值将尝试打开 GMail,而不是用户选择的电子邮件应用程序。
顺便说一句,请注意您的 isAppInstalled()
可能会在 Android 11 上中断,除非您添加 <queries>
元素以将您找到 Gmail 的能力列入白名单。我们通过 PackageManager
查找其他应用程序的能力现在受到限制。
How do I manage to show the list of emails in the inbox instead?
没有要求电子邮件应用程序必须导出 activity,更不用说具有已记录和受支持的 <intent-filter>
。
鉴于您显然只想支持 Gmail,您可以尝试打开他们的 ACTION_MAIN
/CATEGORY_LAUNCHER
activity。对于启动器,将会有其中之一,并且可能用户可以从那里轻松到达他们的收件箱。
如果您想支持范围更广的电子邮件应用程序,您可以:
- 删除
emailPackage
和使用它的代码 - 使用
Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"))
作为MAIN
/LAUNCHER
Intent
的选择器,以显示电子邮件客户端的选择器(如果需要)
有关选择器的更多信息,请参阅 ACTION_SEND
Intent
.