1

次のコードを使用して、メールにテキスト ファイルを添付できます。

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

1 に答える 1

1

これは、URL を正しくエンコードしなかったためです。ファイル名のみをエンコードする代わりに、完全な URL をエンコードすると、次のようになります。

file://te#st.txt
file%3A%2F%2Fte%23st.txt

代わりにこれを試してください:

String path = "file://" + Environment.getExternalStorageDirectory() + "/";
path += URLEncoder.encode( fileName );
于 2012-05-25T19:43:46.827 に答える