W różnych aplikacjach systemu Android używam następującego kodu, aby wyświetlić program do wybierania aplikacji dla poczty e-mail, a po tym, jak użytkownik zdecydował się na jedną z aplikacji, wstaw wstępnie zdefiniowany tekst do Formularz e-mail:E-mailowy zamiar ignorowania podziałów wierszy w ustawionym wcześniej tekście (Android)
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { "[email protected]" });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Sample subject");
String contentStr = "";
for (Object o : mArrayList) { // mArrayList: ArrayList<Object>
content = contentStr+o.toString()+"\n";
}
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, backupStr);
startActivity(Intent.createChooser(emailIntent, "Choose application"));
W pętli for, wyjście ciąg obiektów jest łączony z tymczasowego ciąg «contentStr». Po każdym obiekcie powinna istnieć przerwa liniowa ("\ n").
Więc kiedy testuję ten kod na moim telefonie, działa on dobrze i każdy pojedynczy obiekt ma własną linię.
Jednak użytkownicy zgłaszają, że ich aplikacja pocztowa (również w standardzie Androida) umieszcza wszystko w jednym wierszu i ignoruje podziały wiersza.
Czy robię coś złego? Czy mogę po prostu zignorować ten raport o błędzie, ponieważ nie jest to problem, który programista może rozwiązać?
Możesz wypróbować "text/plain' zamiast" plain/text ". Dodatkowo, powinieneś używać 'StringBuilder' zamiast robić całe to konkatenowanie. Sceptycznie podchodzę jednak do tego, że albo pomoże to w twoim problemie. – CommonsWare
Dziękujemy! Ale zobacz moje komentarze poniżej, aby zobaczyć wadę "text/plain". – caw
jak zauważył Marco W., "message/rfc822" jest poprawnym typem mime dla e-maili – njzk2