Я пытаюсь прикрепить текстовый файл к электронному письму, и у меня появляется странная ошибка, и я надеюсь, что кто-то может мне помочь. Он отлично работает, когда пользователь выбирает приложение gmail из списка выбора, но если они выбирают встроенное почтовое приложение, они видят тост, в котором говорится: «Не удалось присоединить файл».не удалось подключить файл к намерению ACTION_SEND
код выглядит следующим образом:
public static void sendMail(Context context, String emailBody, String emailSubject, String emailAddress, String attachmentFilename){
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { emailAddress});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, emailSubject);
emailIntent.putExtra(Intent.EXTRA_TEXT, emailBody);
if(attachmentFilename != null) {
//Add the attachment by specifying a reference to our custom ContentProvider and the specific file of interest
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://" + Settings.VYPR_LOG_PROVIDER_AUTHORITY + "/" + attachmentFilename));
}
context.startActivity(emailIntent);
}
Кто-нибудь есть какие-либо мысли о том, что может быть здесь происходит? Большинство из того, что я видел здесь, связано с тем, что приложение находится на SD-карте. Я сам на самом деле не писал этот код, но похоже, что это не должно быть проблемой, поскольку он делает, если пользователь выбирает приложение gmail, а не встроенное.
Заранее благодарен!
Просто похоже, что подход ContentProvider несовместим с большим количеством обработчиков ACTION_SEND. Если вы хотите использовать его, лучше всего, вероятно, сделать приложение Gmail обязательным. В противном случае вам нужно будет сохранить файл во внешнем хранилище – akhalsa