Nis*_*sha 7 email android android-intent
我试图通过电子邮件发送通过我的应用程序点击的图片作为附件.单击图片并且我正确地获取路径但是应用程序抛出了运行时异常.."没有找到处理Intent的活动".我正在我的设备上测试这个,我配置了我的Gmail帐户.我不知道如何解决这个问题.请帮忙.
这是我的代码:
public static void sendEmail(Context context, String[] recipientList, String title, String subject, String body) {
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:someone@example.com"));
intent.setType("plain/text");
intent.putExtra(android.content.Intent.EXTRA_EMAIL, recipientList);
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
intent.putExtra(android.content.Intent.EXTRA_TEXT, body);
intent.putExtra(Intent.EXTRA_STREAM, capturedImageFilePath);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
这是日志:
01-15 11:26:04.455: E/AndroidRuntime(9904): FATAL EXCEPTION: main
01-15 11:26:04.455: E/AndroidRuntime(9904): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SENDTO typ=plain/text flg=0x10000000 (has extras) }
01-15 11:26:04.455: E/AndroidRuntime(9904): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1512)
01-15 11:26:04.455: E/AndroidRuntime(9904): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)
01-15 11:26:04.455: E/AndroidRuntime(9904): at android.app.ContextImpl.startActivity(ContextImpl.java:852)
01-15 11:26:04.455: E/AndroidRuntime(9904): at android.content.ContextWrapper.startActivity(ContextWrapper.java:276)
01-15 11:26:04.455: E/AndroidRuntime(9904): at com.example.attachmail.AttchmentActivity.sendEmail(AttchmentActivity.java:133)
01-15 11:26:04.455: E/AndroidRuntime(9904): at com.example.attachmail.AttchmentActivity$2.onClick(AttchmentActivity.java:93)
Run Code Online (Sandbox Code Playgroud)
Gil*_*len 11
我有一个更相似的问题,我已经传递了一个函数的参数,该函数发送带有意图的电子邮件.但是我注意到我需要使用行intent.setData(Uri uri),如果email参数只是电子邮件,则需要使用"mailto:"文本示例:
intent.setData(Uri.parse("mailto:"+email));
Run Code Online (Sandbox Code Playgroud)
像这儿:
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setType("message/rfc822");
intent.putExtra(Intent.EXTRA_EMAIL, email);
intent.setData(Uri.parse("mailto:"+email));
intent.putExtra(Intent.EXTRA_SUBJECT, emailSubject);
intent.putExtra(Intent.EXTRA_TEXT, emailContent);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_FROM_BACKGROUND);
try {
startActivity(intent);
} catch (android.content.ActivityNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("Email error:",e.toString());
}
Run Code Online (Sandbox Code Playgroud)
如果您在模拟器上进行测试,可能会出现"共享"未配置的应用程序的问题,因此要么确保在模拟器上进行设置,要么在实际设备上进行测试.
小智 1
尝试使用以下代码发送电子邮件。
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("message/rfc822");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(Intent.EXTRA_STREAM,Uri.parse(path));
sendIntent.putExtra(Intent.EXTRA_TEXT, body);
startActivity(Intent.createChooser(sendIntent, "Email:"))
Run Code Online (Sandbox Code Playgroud)