0

アプリでメール インテントをセットアップします。バイナリファイルも添付します。電子メール エディターを開くと、バイト数が表示されます。しかし、メールを受信すると、ゼロバイトです!

別のプロジェクトでこれを行ったことがありますが、以前は機能していたので、そのコードを新しいプロジェクトにコピーしました。

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("application/octet-stream");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { "" });
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "message here");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///data/data/com.example.app/files/filename.extension"));

ジンジャーブレッドとジェリービーンでテストしました. デバイス (Galaxy Y および HTC One) のデフォルトの電子メール エディターを使用しました。

ここでも、電子メール エディタに数バイト (つまり 306 バイト) が表示されていても、受信した添付ファイルはゼロ バイトです。

- - - -アップデート - - - - -

そこで、別のプロジェクトを作成し、以下のコードをテストしました。添付ファイル付きのメールを送信します。しかし、プロジェクトで同じコードを使用すると、受信した電子メールはゼロバイトです。ファイル オブジェクトが null で、実行時に null ではないかどうかもテストしたことがわかります。

File file = new File(File.getFilePath(context, "myfile.code"));
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("message/rfc822");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { "" });
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Blah...blah...");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "File sent");
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); //I also used file:///data/data/com.example.emailfile/files/myfile.code and didn't work

if(file == null){
Log.d("----FILE----", "NULL");
}else{
Log.d("----FILE----", "Not Null");
}

これは私を夢中にさせています...プロジェクトで行った設定やセットアップで、添付ファイルが妨げられていますか?

ところで、これが実行されているアクティビティには、ラジオ ボタンと、電子メール インテントを呼び出すためのボタンしかありません。GmailまたはOutlookを使用してメールを送信しています。

4

1 に答える 1

0

最後にそれを理解しました。

まず、ファイルが MODE_WORLD_READABLE であることを確認してください。

2 番目の Gmail は、アプリ内の内部ストレージまたはファイルにアクセスできないようです。また、ここで議論http://code.google.com/p/android/issues/detail?id=18872

Outlook を使用して、なんとか送信および添付ファイルを送信できました。

于 2013-09-05T15:40:48.100 に答える