アプリでメール インテントをセットアップします。バイナリファイルも添付します。電子メール エディターを開くと、バイト数が表示されます。しかし、メールを受信すると、ゼロバイトです!
別のプロジェクトでこれを行ったことがありますが、以前は機能していたので、そのコードを新しいプロジェクトにコピーしました。
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を使用してメールを送信しています。