我想从我的xml偏好设置屏幕触发电子邮件,并附加预定义的主题并在电子邮件应用程序的正文字段中启动光标
这是我到目前为止所得到的
<Preference
android:title="Support"
android:summary="Having a problem?">
<intent
android:action="android.intent.action.VIEW"
android:data="mailto:support@xxxxx.com"
/>
</Preference>
非常适合触发电子邮件意图,但我如何通过xml完成其他操作呢?附加主题和所有?
答案 0 :(得分:21)
你可以像jondavidjohn一样使用mailto查询参数,也可以使用intent extras,你可以将它们混合搭配。例如:
<intent
android:action="android.intent.action.VIEW"
android:data="mailto:xxxxx@xxxxxxx.com?subject=this is a test subject">
<extra android:name="android.intent.extra.TEXT" android:value="This is a test" />
</intent>
...将允许您设置电子邮件的正文以及主题。您还可以将主题指定为额外的。这使您可以使用XML字符串资源而不是硬编码:
<extra android:name="android.intent.extra.SUBJECT" android:value="@string/email_subject" />
我只是从Intent.java中获取了Intent额外的名字;与电子邮件相关的内容都在一起。
我刚刚发现了这个并没有做太多测试,但这似乎与我的GMail邮件客户端一起使用。
此外,如果有任何帮助,我确实使用mailto:URI的“正文”成功了,例如
mailto:example@example.com?subject=This%20is%20a%20subject&body=This%20is%20a%20body
不知道我是否对我的mailto URL进行了网址编码是否有帮助;我只是通过习惯来做这件事,来自网络背景。但这肯定有效,并在GMail和K9邮件应用程序中设置了一个机构。
答案 1 :(得分:2)
显然你可以使用普通浏览器上的许多查询字符串参数:uri。
所以要做到这一点,你只需要像这样使用它们。
<intent
android:action="android.intent.action.VIEW"
android:data="mailto:xxxxx@xxxxxxx.com?subject=this is a test subject"
/>