Намерение электронной почты Android не отправлять прикрепленный файл - PullRequest
5 голосов
/ 29 августа 2010

Я создал приложение, которое отправляет электронное письмо с записью. Когда уволено намерение и в качестве приложения для отправки вложения выбрано электронное письмо, вы можете видеть, что вложение есть, но вложение не доставлено.*

Intent sendIntent = new Intent(Intent.ACTION_SEND);
//Mime type of the attachment (or) u can use sendIntent.setType("*/*")
sendIntent.setType("audio/3gp");
//Subject for the message or Email
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "My Recording");
//Full Path to the attachment
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(fileName));
//Use a chooser to decide whether email or mms
startActivity(Intent.createChooser(sendIntent, "Send email..."));

Есть идеи?

Ответы [ 2 ]

10 голосов
/ 30 августа 2010

Я понял, вам нужно убедиться, что перед вашим URI стоит файл: //.

0 голосов
/ 08 февраля 2017

Начиная с уровня API 24, вы не можете использовать URI "file: //" для передачи файлов между пакетами. Вместо этого вы должны реализовать FileProvider и передать файл, используя его.

Uri fileUri = FileProvider.getUriForFile(context, "com.yourdomain.yourapp.fileprovider", file);

Преимущество FileProvides заключается в том, что вам не нужно разрешение WRITE_EXTERNAL_STORAGE (для API уровня 21 и выше).

Лучшее описание на другой ответ StackOverflow или в этой документации.

...