android - 仅显示电子邮件程序时发送电子邮件
问题描述
我有多个关于发送电子邮件的帖子,甚至在 Android 文档中。它似乎不起作用。我想基本上允许用户选择他们的电子邮件程序来发送电子邮件。这是代码
Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("*/*");
emailIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{"xyz@gmail.com"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(Intent.EXTRA_TEXT , "msg");
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
然而它什么都不做(即没有活动)
我做错了什么?如果我使用 Action.Send,那么它会显示所有社交媒体平台,包括 facebook 和 whatsapp ..etc
谢谢
解决方案
这是取自Adroid 开发者网站并结合这个问题:
public void composeEmail(String[] addresses, String subject, String msessage) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("application/octet-stream");
intent.putExtra(Intent.EXTRA_EMAIL, addresses);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, message);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
请注意,我做了一些更改以匹配问题的大小写。
推荐阅读
- java - 如何使用 java decimalformat 将我的双精度类型数从 x.0E-4 更改为 0.000x?
- flutter - Flutter Theme 使用 onpress 事件将黑暗变为明亮
- javascript - 条件css类在reactjs中的mouseOnEnter或mouseOnOver上没有改变
- spring-cloud - Spring Cloud Gateway路由中Id有什么用?
- windows - 如何将网络驱动器上的文件复制到网络上的另一个文件夹并为复制的文件添加时间戳?
- java - 在java中迭代日期
- sql - 无法过滤 PostgreSQL 中列有连字符的记录
- android - 在android studio中开发java 11 google cloud函数
- arrays - 在 C 中添加和打印数组的元素
- c# - 对于发生的每个错误,如何将 GUID 传递给 ExceptionFilter?