У меня есть приложение, которое создает файл в папке загрузки
Это прекрасно работает - оно использует это, чтобы получить путь к файлу:
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
Теперь я пытаюсь прикрепить этот файл к электронному письму, и я думаю, что я близок, однако я получаю сообщение об ошибке от Gmail, что он не может прикрепить файл.
Я изменился с file://
to content://
, потому что я не смог обойти другую ошибку до этого.
try {
final Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.email_subject));
URI = Uri.parse("content://" + exportFilePath);
emailIntent.putExtra(Intent.EXTRA_STREAM, URI);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, getString(R.string.email_body));
emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
emailIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
this.startActivity(Intent.createChooser(emailIntent, getString(R.string.action_export)));
}
catch (Throwable t) {
Toast.makeText(this, "failed: " + t.toString(), Toast.LENGTH_LONG).show();
Log.e("URI: ", URI.toString());
}
"exportFilePath" содержит полный путь к файлу с момента его создания.
это выглядит так: /storage/emulated/0/Download/file.csv