Так же, как название государства, Im создать новый файл и затем отправить этот файл в качестве вложения электронной почтыЗапись в файл не будет писать
код создания файла:
newFile = new File("/sdcard/" + TEMPFILENAME);
if (newFile.exists()) {
newFile.delete();
}
newFile.createNewFile();
for (int j = 0; j < arrayList.size(); j++) {
writeFileToStorage(TEMPFILENAME, arrayList.get(j).AccountName, arrayList.get(j).UserName, encryptString(arrayList.get(j).Password));
}
recipient = emailEdit.getText().toString();
new EmailSender().execute();
тогда в моем почтовой службе класса I имеет следующие
MimeMessage message = new MimeMessage(session);
MimeMultipart multipart = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(file.getAbsolutePath());
DataHandler handler = new DataHandler(source);
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
messageBodyPart.setDataHandler(handler);
messageBodyPart.setFileName(file.getName());
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport.send(message);
файл послан с правильным именем и от правильного получателя/отправителя, но файл всегда пуст.
Любые идеи?
Edit:
Реализация writeFileToStorage, которая работает в приложении регулярно при сохранении данных
try {
bufferedWriter = new BufferedWriter(new OutputStreamWriter(openFileOutput(fName, MODE_APPEND)));
bufferedWriter.write(aName);
bufferedWriter.newLine();
bufferedWriter.write(_uName);
bufferedWriter.newLine();
bufferedWriter.write(_pWord);
bufferedWriter.newLine();
bufferedWriter.close();
Log.d("Wrote: ", ("AccountName: "+ aName + " UserName: " + _uName + " Password: " + _pWord+ " to: " + fName));
} catch (Exception err) {
String writeError = getString(R.string.write_error);
Toast.makeText(getBaseContext(), writeError, Toast.LENGTH_SHORT).show();
}
Показать реализацию: 'writeFileToStorage' –
Вы * закрываете * файл? – 323go
Никогда не устанавливайте корневые пути жесткого кода. Всегда используйте методы для получения каталогов верхнего уровня в Android. Следовательно, используйте 'getFilesDir()', 'getExternalFilesDir()' и т. Д. Кроме того, никогда не используйте конкатенацию для создания пути к файлу. Используйте конструктор 'File', который принимает корневой каталог (как' File') и имя файла, который вы хотите в этом каталоге. Кроме того, пожалуйста, не загромождайте внешнее хранилище пользователя своими файлами. И вы не передаете 'File' в' writeFileToStorage() ', и поэтому никто не знает, где вы пишете эти данные. – CommonsWare