Преобразование строки в вложение электронной почты на Android - PullRequest
5 голосов
/ 27 мая 2010

Итак, у меня есть данные сома, которые я преобразовал в строку. Хотя я нашел, как прикрепить что-то с SD-карты к почте, я не могу понять, как напрямую преобразовать мою строку в почтовое вложение без использования SD-карты. Если это имеет значение, я прочитал некоторые данные из базы данных, преобразовал их в csv-формат и теперь хочу прикрепить их как csv-файл.

Приветствия

Ответы [ 2 ]

0 голосов
/ 12 мая 2015

У меня та же проблема, я пытаюсь отправить файл, не сохраняя его в файловой системе. Я попытался добавить дополнительный поток данных, например:

String fileContent = "File Content";

emailIntent.putExtra(Intent.EXTRA_STREAM, 
  Uri.parse("data://text/plain;base64,"+ 
    _utils.Strings.base64_encode(fileContent)));

Я использовал свой собственный класс для создания контента base64, но я думаю, что он также будет работать с: http://developer.android.com/reference/android/util/Base64.html

В этом случае это был успех, когда я увидел почтовый файл в моем почтовом клиенте.

Но есть 2 проблемы: 1. Я не знаю, как определить имя для этого файла 2. возникает ошибка, когда я пытаюсь отправить файл и получаю письмо без вложения на другом конце.

ОБНОВЛЕНИЕ 2015-05-13: Почтовое приложение отображает следующую ошибку для моего атташе:

E/Gmail(11511): java.io.FileNotFoundException: No content provider: data://text/plain;base64,

Я думаю, это означает, что в моем телефоне отсутствует поставщик контента, который может обрабатывать данные. Поэтому я думаю, что мы должны создать ContentProvider (см .: http://developer.android.com/guide/topics/providers/content-provider-creating.html)

И реализовать

openOutputStream(android.net.Uri)

для возврата содержимого данных URI.

0 голосов
/ 27 мая 2010

создайте временный файл, используя файловые API, и тогда вы можете пойти дальше и добавить его как дополнительный в намерения электронной почты, как это

emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(csvFile));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...