このコードを使用して、ログ結果をメールで送信しています。
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emailAddressList);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Android Log");
emailIntent.putParcelableArrayListExtra(android.content.Intent.EXTRA_STREAM, uris);
try {
startActivity(Intent.createChooser(emailIntent,"Send..."));
finish();
}
catch (android.content.ActivityNotFoundException e) {
new AlertDialog.Builder(SendActivity.this)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.cannotSend)
.setMessage(R.string.appNotFound)
.setPositiveButton(R.string.ok, null)
.show();
}
エミュレーター (trget Jelly Bean) のメール アプリは次のとおりです。
送信すると、送信先、件名、および添付ファイルを含む次のように表示されます。
oubox には、メッセージに添付ファイルがあることが示されています。
しかし、受信したメッセージには添付ファイルがありません:
私の唯一の推測は、電子メール アプリが失敗したということですが、それが私のせいなのか、それを修正できるのか、またはジョブを実行する AVD にインストールできる別のメール クライアントがあるのかどうかはわかりません。
PS: ところで、これらのメールの送信は AVD では非常に遅くなりました。テキストのみのメールを作成して送信することをテストしたところ、はるかに迅速に送信されました。
編集
私は考えていましたが、添付ファイルが一時ファイルからのものであるために問題が発生している可能性がありますか? そして、それらはコピーではなくメールにリンクされており、メール アプリがそれらを送信できるようになるまでに、それらは存在しなくなっていますか?
attachment = File.createTempFile("logs", "txt");
out = new FileOutputStream(attachment);
out.write(logs.getBytes());
out.close();
uris.add(Uri.fromFile(attachment));
attachment = File.createTempFile("sysinfo", "txt");
out = new FileOutputStream(attachment);
out.write(getSystemInfo());
out.close();
uris.add(Uri.fromFile(attachment));