次のコードを使用して、メールにテキスト ファイルを添付できます。
String fileName = "test.txt";
path = "file://" + Environment.getExternalStorageDirectory() + "/" + fileName;
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(path));
startActivity(Intent.createChooser(sendIntent, "Email"));
ただし、gmail 経由で送信されたメールには添付ファイルが含まれていませんfileName="test#.txt"
。
以下のように URLEncoder でパスをエンコードしてみましたが、「text.txt」でも「text#.txt」でもうまくいきません。
ここで単純なものが欠けている可能性がありますが、送信インテントのためにファイルパスを特殊文字でエンコードするにはどうすればよいですか?
String fileName = "test.txt";
// String fileName = "test#.txt";
String path = "file://" + Environment.getExternalStorageDirectory() + "/" + fileName;
String encPath = URLEncoder.encode(path);
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(encPath));
startActivity(Intent.createChooser(sendIntent, "Email"));