我正在尝试一个简单的电子邮件应用程序。我引用了此链接 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 :"));
}
});
}
}
答案 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自动填充。