Как вы прикрепляете файл, который находится в памяти, например строку, с расширением файла .txt и т. Д. Я попытался сохранить строку в внутренней памяти, а затем прикрепить ее, и я не могу заставить ее работатьхотя я бы предпочел решение первой проблемы.
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("plain/text");
try {
FileOutputStream fos = openFileOutput("data.enw", Context.MODE_PRIVATE);
fos.write(export_text.getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
i.putExtra(Intent.EXTRA_STREAM, Uri.parse(new File("data.enw").toString()));
i.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"MyEmail"});
i.putExtra(android.content.Intent.EXTRA_SUBJECT, "Attachment");
i.putExtra(android.content.Intent.EXTRA_TEXT, "Import the attachment");
startActivity(Intent.createChooser(i, "E-mail"));
[Редактировать] Приведенный ниже код работает, однако для него требуется SD-карта.Есть ли лучший способ сделать это.
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("plain/text");
File data = null;
try {
data = File.createTempFile("data", ".enw");
FileOutputStream out = new FileOutputStream(data);
out.write(export_text.getBytes());
out.close();
} catch (IOException e) {
e.printStackTrace();
}
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(data));
i.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"MyEmail"});
i.putExtra(android.content.Intent.EXTRA_SUBJECT, "Attachment");
i.putExtra(android.content.Intent.EXTRA_TEXT, "Import the attachment");
startActivity(Intent.createChooser(i, "E-mail"));