Я работал над программой Android для отправки электронной почты с вложением (файл изображения, аудиофайл и т. Д.), Используя Intent с ACTION_SEND
. Программа работает, когда в письме есть одно вложение. Раньше я Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)
прикреплял указанный файл изображения к почте, и он работает нормально, почту можно доставить через Gmail. Однако когда я пытался прикрепить несколько изображений к одному и тому же письму, позвонив Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)
несколько раз, это не сработало. В письме нет вложения.
Я просмотрел документацию SDK и группу пользователей Android-программирования о вложениях электронной почты, но не нашел никакой связанной информации. Однако я обнаружил, что есть еще одна константа намерения ACTION_SEND_MULTIPLE
(доступная с уровня API 4), которая может удовлетворить мои требования. Основываясь на документации SDK, он просто заявляет, что он доставляет несколько данных кому-то еще, как и работает ACTION_SEND
, за исключением того, что данных несколько. Но я все еще не мог понять, как правильно использовать эту команду. Я попытался объявить о намерении ACTION_SEND_MULTIPLE
, а затем putExtra(EXTRA_STREAM, uri)
несколько раз позвонил, чтобы прикрепить несколько изображений, но получил тот же ошибочный результат, что и раньше, ни одно вложение не появилось в письме.
Кто-нибудь пробовал ACTION_SEND_MULTIPLE
и работал с несколькими вложениями электронной почты?
источник
Ответы:
Вот код, который вам нужен для создания emailIntent, содержащего несколько вложений.
источник
emailIntent.setType("text/plain");
. Если вы используете "простой / текстовый", Android заставит использовать GMail в качестве отправителя, но если вы используете "текст / обычный", он предоставит диалог выбора приложения с Gmail, Facebook, Bluetooth и т. Д. Если вы хотите предлагать только почтовые программы вместо этого используйте "text / xml".context.startActivity(emailIntent);
на флажок «Использовать по умолчанию для этого действия» появится в диалоговом окне выбора приложения, таким образом, пользователь сможет выбрать приложение по умолчанию для отправки электронных писем с несколькими вложениями.ACTION_SEND_MULTIPLE
должно быть действиеа потом
emailIntent.setType("text/plain");
с последующим:
У меня это работает.
источник
Хотя это старый поток, но, поскольку он показан вверху при поиске в Google, я хочу добавить небольшую подсказку, чтобы завершить его, поэтому я наткнулся на него.
Необходимо сделать прикрепленные файлы доступными для чтения для почтовой активности, иначе они не будут прикреплены. Так что тебе нужно куда-то позвонить
источник
Здесь я нашел отличный пример http://www.blackmoonit.com/2010/02/filebrowser-send-receive-intents/
вы должны использовать
источник
Для нескольких вложений используйте,
PutParcelableArrayListExtra(Intent.ExtraStream, uris)
где переменная uris -List<IParcelable>().
это пример:Надеюсь это поможет ;)
источник