如何将此Android电子邮件发送代码投入使用?

时间:2011-08-20 14:53:24

标签: java android android-ndk android-manifest

有谁知道如何把这个电子邮件发送/移动到服务? 这是代码:

Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("text/plain");
            i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"myemail@hotmail.com"});
            i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
            i.putExtra(Intent.EXTRA_TEXT   , "body of email");

这是我的服务代码(Not Works并给我一些“强制关闭”):

@Override
    public void onStart(Intent intent, int startid) {
        //Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
        sendEmail();
    }

    public void sendEmail()
    {
        Intent i = new Intent(Intent.ACTION_SEND);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        i.setType("text/plain");
        i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"myemail@hotmail.com"});
        i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
        i.putExtra(Intent.EXTRA_TEXT   , "body of email");

        try {
            getApplication().startActivity(Intent.createChooser(i, "Send mail..."));
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(EmailService.this,ex.getMessage(), Toast.LENGTH_SHORT).show();
            Toast.makeText(EmailService.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
        }

    }

请帮助解决我的问题..谢谢..

1 个答案:

答案 0 :(得分:1)

  

因为我想通过后台无声地发送电子邮件

通过ACTION_SEND无法做到这一点。如果您想在没有用户参与的情况下发送电子邮件,则需要集成自己的SMTP库(在某处可以使用JavaMail的Android端口)。

  

不行,给我一些“强行关闭”

在Eclipse中使用adb logcat,DDMS或DDMS透视图来检查LogCat并查看与“强制关闭”相关联的堆栈跟踪。

此外,请勿使用getApplication(),因为您不需要它。