我在使用android电子邮件时遇到问题.....我需要打开电子邮件应用程序,以便用户可以为我的应用程序提供反馈。当我使用它时,它无法打开..引发ActivityNotFoundException .. ...我使用的是手机,而不是模拟器,并且手机中包含电子邮件和gmail应用程序。 帮我解决吗? 这是我的代码:
Intent intent= new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:"));
intent.setType("text/plain");
String[] mail={"someone@gmail.com"};
intent.putExtra(Intent.EXTRA_SUBJECT,"");
intent.putExtra(Intent.EXTRA_TEXT,"");
intent.putExtra(Intent.EXTRA_EMAIL,mail);
startActivity(intent);
任何人和所有评论都表示赞赏:)
答案 0 :(得分:0)
对于您而言,ActivityNotFoundException
最有可能意味着您的手机上没有在Gmail等设备上安装任何默认的电子邮件应用程序电子邮件应用程序,因此在启动Intent时会收到此错误。 / p>
您可以尝试像这样处理该异常:
try {
startActivity(Intent.createChooser(i, "Send mail"));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(Activity.this, "no email app",Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:0)
从android docs上,一个Intent允许您通过描述要执行的简单操作(例如“查看地图”或“拍照”)来启动另一个应用程序中的活动。一个Intent对象。这种类型的意图称为隐式意图,因为它没有指定要启动的应用程序组件,而是指定了一个动作并提供了一些数据来执行该动作。
当您调用startActivity()或startActivityForResult()并将其传递给隐式意图时,系统会将意图解析为可以处理该意图的应用,并启动其相应的Activity。如果有多个应用程序可以处理此意图,则系统会向用户显示一个对话框,以选择要使用的应用程序。
因此,在您的情况下,系统无法像@Tamir所提到的那样找到用于解决意图的应用程序。
有关更多信息,请查看此Stack Overflow帖子:Send Email Intent
答案 2 :(得分:-2)
对我有用:
String[] recipients;
Intent intent = new Intent(Intent.ACTION_SEND);
recipients = new String[]{"someone@gmail.com"};
intent.putExtra(Intent.EXTRA_EMAIL, recipients);
intent.setType("text/html");
intent.setPackage("com.google.android.gm");
try {
activity.startActivity(Intent.createChooser(intent, "Send"));
}
catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(Activity.this, "no email app",Toast.LENGTH_SHORT).show();
}