我正在开发android并尝试发送附带文件的电子邮件,但收到以下错误。
android.content.ActivityNotFoundException:找不到要处理的Activity 意图{act = android.intent.action.SENDTO dat = file://assets/Cards/myfile.pdf typ = Applications / pdf flg = 0x10000000 (有额外的)}
我对Android dev非常新,所以我有点失去了我需要做的事情。以下是我目前正在尝试的内容
Intent intent = new Intent(Intent.ACTION_SENDTO ); // it's not ACTION_SEND
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Card Set "));
intent.putExtra(Intent.EXTRA_TEXT, "");
intent.setData(Uri.parse("mailto:"));
intent.setDataAndType(Uri.parse("file://assets/Cards/" + "myfile.pdf"),
"Applications/pdf");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivity(intent);
我可以在不附加文件的情况下创建和发送电子邮件。任何关于我应该如何正确附加文件的帮助都将非常感谢
答案 0 :(得分:1)
好的,感谢Kartik的链接,我设法找到了附加文件的正确方法(以及一种工作方式)。 搜索后我发现这是为了说明如何将文件存储到外部存储器 http://developer.android.com/reference/android/os/Environment.html#getExternalStoragePublicDirectory%28java.lang.String%29
所以我使用此页面上的修改后的createExternalStoragePublicPicture()写入内存,然后执行以下操作
createExternalStoragePublicPicture();
File path = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES);
File file = new File(path, "cards_01.pdf");
Intent intent = new Intent(Intent.ACTION_SEND ,Uri.parse("mailto:")); // it's not ACTION_SEND
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Card Set ");
intent.putExtra(Intent.EXTRA_TEXT, "");
intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this will make such that when user returns to your app, your app is displayed, instead of the email app.
activity.startActivity(intent);
上面的链接显示了如何删除文件,并说明如何将它们放在正确的文件夹中以避免覆盖其他文件。 希望这可以帮助其他任何有同样问题的人
答案 1 :(得分:0)
我认为this example mi8可以帮助你的方案:)