电子邮件应用程序给出错误“没有应用程序可以执

时间:2012-08-29 10:16:55

标签: android email

我正在尝试一个简单的电子邮件应用程序。我引用了此链接 http://www.mkyong.com/android/how-to-send-email-in-android/

但我在模拟器和真实设备上收到错误“没有应用程序可以执行此操作”。如何克服此错误。如上面的发送按钮链接中所述,将出现“选择电子邮件客户端”选项。如何获得这个?有人可以指导我PLZ。 Thanx提前。 我的代码是:

package com.example.androidsample4;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MakeComment extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.comment);
        TextView tv1=(TextView)findViewById(R.id.textView1);
        TextView tv2=(TextView)findViewById(R.id.textView2);
        TextView tv3=(TextView)findViewById(R.id.textView3);
        TextView tv4=(TextView)findViewById(R.id.textView4);
        TextView tv5=(TextView)findViewById(R.id.textView5);
        final EditText ed1=(EditText)findViewById(R.id.editText1);
        EditText ed2=(EditText)findViewById(R.id.editText2);
        final EditText ed3=(EditText)findViewById(R.id.editText3);
        final EditText ed4=(EditText)findViewById(R.id.editText4);
        ed3.setKeyListener(null);
        Button b1=(Button)findViewById(R.id.button1);
        b1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                  //String to = ed3.getText().toString();
                  String name = ed1.getText().toString();
                  String message = ed4.getText().toString();

                  Intent email = new Intent(Intent.ACTION_SENDTO);
                 // email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});
                  //email.putExtra(Intent.EXTRA_CC, new String[]{ to});
                  //email.putExtra(Intent.EXTRA_BCC, new String[]{to});
                  email.putExtra(Intent.EXTRA_SUBJECT, name);
                  email.putExtra(Intent.EXTRA_TEXT, message);

                  //need this to prompts email client only
                  email.setType("message/rfc822");

                  startActivity(Intent.createChooser(email, "Choose an Email client :"));

            }
        });
    }

}

4 个答案:

答案 0 :(得分:1)

除非您安装可以处理电子邮件的应用程序,否则它将无法在模拟器上运行。默认情况下,不安装此类应用程序。尝试在您的真实设备上安装电子邮件客户端并重新测试。

答案 1 :(得分:0)

试试这个:

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
            "mailto","abc@gmail.com", null));
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "EXTRA_SUBJECT");
startActivity(Intent.createChooser(emailIntent, "Send email..."));

希望这会有所帮助。

答案 2 :(得分:0)

这只会在您的选择器中显示电子邮件应用程序:

     private void sendMail() {
        String recipientList = "recipient@gmail.com,recipient2@gmail.com";
        String[] recipients = recipientList.split(",");

        String subject = "App Subject - Help me";

        Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
                "mailto","emailaddress@gmail.com", null));
        intent.putExtra(Intent.EXTRA_EMAIL, recipients);
        intent.putExtra(Intent.EXTRA_SUBJECT, subject);

        startActivity(Intent.createChooser(intent, "Choose an Email Client"));
    }

答案 3 :(得分:-1)

由于您尚未发布代码,我们无法告诉您哪里出错了。尝试下面的代码(在设备和模拟器上都有效),如果它有效,那么你的部分就有问题,如果没有尝试安装另一个电子邮件客户端。

TextView email = (TextView) findViewById(R.id.email);
email.setText(Html.fromHtml("<a href=\"mailto:youremail@gmail.com\">E-mail</a>"));
email.setMovementMethod(LinkMovementMethod.getInstance());

“选择电子邮件客户端选项” - 该窗口由Android自动填充。