【问题标题】:Email intent as a Dialog作为对话框的电子邮件意图
【发布时间】:2012-10-22 15:25:51
【问题描述】:

我正在开发一个带有电子邮件共享功能的应用程序。我用来启动 Intent 的代码是标准的 Android,即:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, title);
emailIntent.setType("application/octet-stream");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Hello");

context.startActivity(emailIntent);

问题是,这会以全屏方式启动 Gmail 应用程序,这是我不想要的。我可以让它成为一个类似于下面 iOS 的对话框吗?如果没有,是已经写好了,还是需要我自己写。

谢谢

【问题讨论】:

  • afaik 答案是:不。您无法更改对外部 Intent 的解释方式。

标签: android android-intent gmail


【解决方案1】:

您可以使用此布局创建一个对话框,以从用户那里获取数据并使用 avaMail API 发送实际的电子邮件,如帖子所示

Sending Email in Android using JavaMail API without using the default/built-in app

【讨论】:

  • 谢谢,这似乎最接近我的需要
【解决方案2】:

您不能使用 ACTION_SEND。通过发送此 Intent,您是在告诉系统自己启动 Gmail。您可以在 Intent 中传递“附加”以填充一些有用的数据。这是一个功能,因为您允许用户在可以处理 ACTION_SEND 的应用中进行选择,而不是强制他们使用 Gmail。

如果你想要一个对话框,你必须先自己编写,然后将你收集的值传递给用户选择的电子邮件程序。

【讨论】:

  • 这是我怀疑的,感谢您的确认。在这种情况下,您将如何将数据从自定义意图传递到电子邮件客户端。是不是不需要再次使用 ACTION_SEND 导致同一个圈子?
【解决方案3】:

通过触发 Intent,您正在启动另一个应用程序。没有邮件程序(公平)支持任何类型的嵌入,因此您需要自己编写图片活动,然后,一旦用户结束输入,抓取那里的内容并执行ACTION_SEND。但是,我建议不要这样做,除非您的用户开始抱怨(我认为这不会发生)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多