0

このコードを使用して、ログ結果をメールで送信しています。

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

1 に答える 1

0

まあ、それは間違いなくエミュレータの問題です。

Intel の HAXM VM をインストールし、Intel イメージを使用して新しい AVD を作成しました。実行速度が速いだけでなく、添付ファイルを含むメールを問題なく即座に送信しました。

編集
実際のデバイスでテストしたところ、実際の問題であることがわかりました。この投稿は非常に役立ちます

于 2013-02-24T09:15:59.397 に答える