Не удается отправить файл на email в андроид

356
21 августа 2017, 07:59

Приветствую спецов! Я начинающий в программировании на java андроид. Пытаюсь отправить файл через почтовый клиент. Файл прикрепляется к письму и появляется в почтовом клиенте. Письмо приходит на указанный адрес, но без файла. Файл не пустой, проверял файловым менеджером. Использую такой код:

   final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
   emailIntent.setType("plain/text");
  // Кому
  emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
        new String[] { "ххххххх@gmail.com" });
  // Зачем
  emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
        tema);
  // С чем
  emailIntent.putExtra(android.content.Intent.EXTRA_STREAM,Uri.fromFile(new File("Logf.txt")));

Файл создавался во внутренней памяти таким кодом:

BufferedWriter Writer = new BufferedWriter(new OutputStreamWriter(openFileOutput("Logf.txt", MODE_PRIVATE | MODE_APPEND), "UTF-8"));
Writer.write(log_text+"\n");
Writer.flush();
Writer.close(); 

заметил, что при попытке чтения файла также возникала неудача, хотя файл был непустой. Код для чтения такой:

  BufferedReader Reader = new BufferedReader(new InputStreamReader(openFileInput("Logf.txt"), "UTF-8"));
  while (Reader.readLine() != null) {
        str=str+Reader.readLine()+"\n";
      } 

В результате чтения str было "null".

Прошу спецы подскажите, что я делал не так?

Answer 1

Видимо у Вас текст в файле в одну строку и Вы её пропускаете:
while (Reader.readLine() != null) - здесь строка уже прочитана, но Вы её не сохраняете в переменную и она теряется.
Нужно так:

    BufferedReader reader = new BufferedReader(new InputStreamReader(openFileInput("Logf.txt"), "UTF-8"));
    String line;
    while ((line = reader.readLine()) != null) {
        str += line + "\n";
    } 
READ ALSO
Сборка RCP проекта

Сборка RCP проекта

Добрый день! Подскажите пожалуйста как правильно собрать Plug-in проект при помощи Maven? Когда собираю не добавляет папку icons и файл pluginxml в jar

332
Использование библиотеки JSTL

Использование библиотеки JSTL

Я учусь, и мне в моей форме входа и регистрации надо применить jstl библиотекуУ меня простая форма для регистрации и входа, приём данных с которых...

342
Может ли Heap Sort копировать все элементы?

Может ли Heap Sort копировать все элементы?

Наткнулся на реализацию HeapSort на wikibooks использующую копирование элементов в PriorityQueue и обратно в массивНо ведь одно из главных преимуществ...

249
Java не срабатывает repaint()

Java не срабатывает repaint()

Добрый деньЕсть изображение, и методы paintComponent(Graphics g) и repaint()

482