android - 发送电子邮件时未找到处理 Intent 的 Activity

标签 android email android-intent

我正在尝试将通过我的应用程序点击的图片作为附件通过电子邮件发送。单击图片,我得到了正确的路径,但应用程序向我抛出运行时异常。“未找到处理 Intent 的 Activity ”。我正在我的设备上对此进行测试,并且配置了我的 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);

}

这是日志:

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)

最佳答案

我有一个类似的问题,我已经将参数传递给一个发送带有 Intent 的电子邮件的函数。 但是我注意到我需要使用 intent.setData(Uri uri) 行,如果电子邮件参数只是电子邮件,那么它需要使用“mailto:”文本 示例:

intent.setData(Uri.parse("mailto:"+email));

喜欢这里:

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());
                }

如果您在模拟器上测试它,可能会出现未配置“共享”应用程序的问题,因此请确保在模拟器上进行设置或在实际设备上进行测试。

关于android - 发送电子邮件时未找到处理 Intent 的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14331953/

相关文章:

java - 未找到自定义 BLE 服务,mBluetoothGatt.getService(uuid) 返回 null

android - 当应用程序不在后台或前台时,无法将通知推送到通知管理器

Java 邮件发件人名称掩码

html - 设置主题包含与号 (&) 的 mailto 链接

android - 打开透明 Activity 并截图

java - Recyclerview android 不工作

android - Gradle、Groovy-all-2.3.6.jar 未找到

javascript - 输入类型电子邮件验证没有 "require"属性

android - 用于在 android 中浏览 XML(特别是 rss)的 Intent 过滤器

android - 使用 Intents 播放音频文件