В моем приложении я хочу отправить по электронной почте содержимое файла журнала для отладки. Однако на устройстве Android символы новой строки (\ n) отображаются в почте как пробелы, а не как настоящие символы новой строки. (Он работает правильно на iPhone и в симуляторе.) Можно ли это исправить или есть обходной путь?
Кстати, почему симулятор обрезает текст почтового сообщения?
Изменить: Я только что протестировал на более свежем планшете (2019 против 2013), и проблема исчезла.
Редактировать 2: На самом деле это зависит от почтового клиента. Тестовый пример: создайте проект Hello world и измените start () на:
public void start() {
if(current != null){
current.show();
return;
}
Form hi = new Form("Test log", BoxLayout.y());
Button b = new Button("Send log");
b.addActionListener((ActionListener) (ActionEvent evt) -> {
String text;
try {
byte[] read = com.codename1.io.Util.readInputStream(Storage.getInstance().createInputStream("CN1Log__$"));
text = new String(read);
} catch (IOException ex) {
text = ex.getMessage();
}
sendMessage("Log file", new Message(text), "");
});
hi.add(b);
log("line 1");
log("line 2");
hi.show();
}
Тестирование на Samsung Galaxy Tab A 10.1 дает:
1) с использованием (Samsung) почтового клиента:
[EDT] 0:0:0,33 - Codename One revisions: 7dd4e7d08b3442d90959477ee52a5ae8c4361b29
[EDT] 0:0:0,36 - line 1
[EDT] 0:0:0,39 - line 2
2) с использованием (Google) клиента Gmail:
[EDT] 0:0:0,33 - Codename One revisions: 7dd4e7d08b3442d90959477ee52a5ae8c4361b29 [EDT] 0:0:0,36 - line 1 [EDT] 0:0:0,39 - line 2