1

我有一个使用模拟器通过 Intent 发送文本电子邮件的普通代码。我遇到的问题是电子邮件客户端的“撰写”活动 - 我使用 ICS AVD - 在执行 startActivity() 时出现。所有字段均已正确填写,我必须单击“发送”以结束该过程。之后,控件返回到我的应用程序 UI,并且电子邮件正确发送到目的地。我应该怎么做才能在后台顺利完成发送,而不弹出模拟器的电子邮件应用程序?这是我的代码:

public class AppPilot extends Application {
    ...
    private static Context context;
    ...
    @Override
    public void onCreate() {
        super.onCreate();
        context = this;
    }
    ....
        /**
     * Send an Email 
     * @param emailAddress
     * @param emailObject
     * @param emailBody
     */
    public static void sendEmailCoupon(String emailAddress, String emailSubject,
        String  emailBody)  {

        String emailadd[] = { emailAddress };
        Intent emailIntent = new Intent(Intent.ACTION_SEND);
        emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        emailIntent.putExtra(Intent.EXTRA_EMAIL, emailadd);
        emailIntent.putExtra(Intent.EXTRA_SUBJECT, emailSubject);
        emailIntent.setType("plain/text");
        emailIntent.putExtra(Intent.EXTRA_TEXT, emailBody);
        context.startActivity(emailIntent);
}
4

1 回答 1

2

这是未来寻找的人的答案,以防在原始帖子之前单击此帖子:使用JavaMail API在Android中发送电子邮件而不使用默认/内置应用程序。基本上,首先下载3个jar文件——mail.jar(URI:http: //javamail-android.googlecode.com/files/mail.jar);activation.jar (URI: http://javamail-android.googlecode.com/files/activation.jar ); additional.jar (URI: http://javamail-android.googlecode.com/files/additionnal.jar) 到 Eclipse 项目的 /libs 文件夹中。然后右键单击它们中的每一个并使用 Build Path > Add to Build Path 进行引用。创建一个单独的“电子邮件”类,并按照上面链接中“droopie”发布的代码 100% 进行操作。需要使用 JavaMail 以便绕过安全设计原则或将 Android 作为应用程序容器。高温高压

于 2013-01-14T14:52:51.343 回答