Этот вопрос задавали многие люди. Я хотел бы прикрепить файл из внутреннего хранилища, используя приведенный ниже код с принятым комментарием здесь, на SO:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain-text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"email@example.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject here");
intent.putExtra(Intent.EXTRA_TEXT, "body text");
File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File file = new File(root, "myName.csv");
Toast.makeText(this, file.toString(), Toast.LENGTH_SHORT).show();
if (!file.exists() || !file.canRead()) {
Toast.makeText(this, "Attachment Error", Toast.LENGTH_SHORT).show();
finish();
return;
}
Uri uri = Uri.fromFile(file);
intent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(intent, "Send email..."));
Разрешение используется в манифесте:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Приложение выдает сообщение Toast «Ошибка вложения».