3

私はアンドロイドで作業しており、ファイルが添付されたメールを送信しようとしていますが、次のエラーが発生しています。

android.content.ActivityNotFoundException: Intent を処理するアクティビティが見つかりません

私はAndroid開発に非常に慣れていないので、何をする必要があるのか​​ ちょっと迷っています。以下は私が現在試していることです

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

ファイルを添付しなくても、メールを作成して送信できます。ファイルを正しく添付する方法についての助けがあれば、どうもありがとう

4

2 に答える 2

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

上記のリンクは、ファイルを削除する方法も示しており、他のファイルを上書きしないように正しいフォルダーに配置することについて述べています。これが同じ問題を抱えている他の人に役立つことを願っています

于 2012-09-13T15:20:49.060 に答える
0

この例のmi8はあなたのシナリオに役立つと思います:)

于 2012-09-13T12:12:26.570 に答える