0

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

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

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

4 回答 4

1

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

于 2012-08-29T10:21:47.067 回答
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..."));

希望这可以帮助。

于 2013-02-22T10:41:34.957 回答
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"));
    }
于 2020-10-15T07:55:41.770 回答
-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 自动填充。

于 2012-08-29T10:33:19.053 回答