Android调用系统邮件类应用的正确实现方法

Android应用开发中,很多情况下免不了要调用手机上的邮件类应用,实现邮件发送的功能,这一般是通过调用系统已有的Intent来实现的。看到网上很多邮件发送都是调用action为android.content.Intent.ACTION_SEND的Intent来实现的,下面我们就来看下这种方式实现的效果如何。

【使用Intent.ACTION_SEND方式】

具体的UI搭建我就不说了,很easy,直接看下发送的核心代码就行:

[java] view plaincopyprint?
String[] email = {"3802**92@qq.com"}; // 需要注意,email必须以数组形式传入 
Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("message/rfc822"); // 设置邮件格式 
intent.putExtra(Intent.EXTRA_EMAIL, email); // 接收人 
intent.putExtra(Intent.EXTRA_CC, email); // 抄送人 
intent.putExtra(Intent.EXTRA_SUBJECT, "这是邮件的主题部分"); // 主题 
intent.putExtra(Intent.EXTRA_TEXT, "这是邮件的正文部分"); // 正文 
startActivity(Intent.createChooser(intent, "请选择邮件类应用")); 

上面代码的效果如下图所示,将会拉起不止邮件类应用,这是很坑爹的事情,用户体验相当差。

Android调用系统邮件类应用的正确实现方法


从上面结果可以看出,ACTION_SEND不是首选的方案,更好的方案是能够过滤非邮件类应用,只识别邮件类应用。这可以通过使用另外一个action来实现的。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/30bd9cf4dfd122b57407b41244f1f81a.html