我写了这段代码发送电子邮件但是给我"没有应用程序可以执行此操作"错误?!!谁能帮我 。!
public class MainActivity extends Activity {
Button startBtn;
Intent chooser = null , emailIntent = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
startBtn = (Button) findViewById(R.id.sendEmail);
startBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
sendEmail();
}
});
}
protected void sendEmail()
{
String[] TO = {"a.gadelkareem94@gmail.com"};
emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Hello");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Thanks For Your Job");
emailIntent.setType("message/rfc822");
emailIntent.setPackage("com.Gmail");
chooser = Intent.createChooser(emailIntent, "Send Email");
startActivity(chooser);
}
}
但没有电子邮件发送
答案 0 :(得分:1)
您应该使用intent.setType("text/plain");
我们可以使用"message/rfc822"
代替“text/plain"
作为MIME类型。但是,这并不表示”仅提供电子邮件客户端“ - 它表示”提供支持message / rfc822数据的任何内容“这可能很容易包括一些不是电子邮件客户端的应用程序。
message / rfc822支持.mhtml,.mht,.mime的MIME类型
asredy在这里回答:Send Email Intent
答案 1 :(得分:0)
您的代码段存在一些问题。
emailIntent.setPackage("com.Gmail")
。这只会考虑应用程序ID为“com.Gmail”的应用程序作为intent的目标。但是,“com.Gmail”不是Gmail应用的应用ID。你不应该限制选择。所以,让我们放弃这一行。mailto
URI。包含示例中的收件人,主题和文本的内容如下所示:mailto:a.gadelkareem94@gmail.com?subject=Hello&body=Thanks%20For%20Your%20Job
Intent.createChooser()
,您必须每次都手动选择他们的电子邮件应用程序(假设安装了多个)。考虑到这一切,我们最终得到:
Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse("mailto:a.gadelkareem94@gmail.com?subject=Hello&body=Thanks%20For%20Your%20Job"));
try {
startActivity(emailIntent);
} catch (ActivityNotFoundException e) {
//TODO: Display message that no email app was found
}
为了减轻这一切,我写了一下图书馆EmailIntentBuilder。您可以像这样使用它:
EmailIntentBuilder.from(context)
.to("a.gadelkareem94@gmail.com")
.subject("Hello")
.body("Thanks For Your Job")
.start();
我还写了一篇博文,更详细地解释了所有这些:Sending Email using Intents。