ファイルが添付された電子メールを送信するように Android アプリを取得しようとしています。.txt ファイルは単純なので、.txt ファイルから始めています。
これまでのところ、これがあります(フラグメント内で行われます):
//Send the email
Intent mailIntent = new Intent(Intent.ACTION_SEND);
mailIntent.setType("text/Message");
mailIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{address});
mailIntent.putExtra(Intent.EXTRA_SUBJECT, "Test Email");
mailIntent.putExtra(Intent.EXTRA_TEXT , "Hi! This is a test!");
//Deal with the attached report
String FileName = "report.txt";
Calculator.generateReport(getActivity().getApplicationContext(), FileName);
//It will be called "report.txt"
File attachment = getActivity().getApplicationContext().getFileStreamPath(FileName);
if (!attachment.exists() || !attachment.canRead()) {
Toast.makeText(getActivity().getApplicationContext(),
"Attachment Error",
Toast.LENGTH_SHORT).show();
System.out.println("ATTACHMENT ERROR");
}
else
{
Uri uri = Uri.fromFile(attachment);
mailIntent.putExtra(Intent.EXTRA_STREAM, uri);
}
//Send, if valid!
try {
startActivity(Intent.createChooser(mailIntent, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(getActivity().getApplicationContext(),
"There are no email clients installed.",
Toast.LENGTH_SHORT).show();
}
残念ながら、それはうまくいかないようです。これで、ファイルが存在することがわかりました。の後に適切なコードを挿入するgenerateReport()
と、ファイルを見つけてアクセスし、その内容を読み取ることができます。それはそこにあり、私は正しい名前を持っています。
電子メール クライアントを選択するオプションが表示されたときに、Gmail を選択すると、実際にreport.txt
電子メールにファイルが添付されていることがわかります。しかし、メールを送信すると「添付ファイルを送信できませんでした」という通知が届き、何も添付されていないメールが届きます。
text/plain
やなどの他のインテント タイプも試してみましたがmessage/rfc822
、役に立ちませんでした。
私が間違っているかもしれないことについてのアイデアはありますか?