2013-05-29 2 views
3

Я знаю, что могу использовать следующий код, чтобы вызывать по умолчанию почтовый клиент Android для отправки электронной почты.
В почтовом клиенте, поддерживающем простой текст, мне нужно использовать "\n", чтобы сделать новую строку, но в поддерживаемом html почтовом клиенте мне нужно использовать "<br/>", чтобы сделать новую строку.
Как узнать, какой почтовый клиент поддерживается? Благодаря!Как узнать, какой почтовый клиент поддерживается?

Intent emailIntent=new Intent(Intent.ACTION_SEND);   

String subject = "Your sms sent by email"; 
String body = "aa"+"<br/>"+"bb"; 

String[] extra = new String[]{"[email protected]"}; 
emailIntent.putExtra(Intent.EXTRA_EMAIL, extra); 

emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject); 
emailIntent.putExtra(Intent.EXTRA_TEXT, body); 
emailIntent.setType("message/rfc822"); 

startActivity(emailIntent); 

ответ

1

Вы EXTRA_TEXT и EXTRA_HTML_TEXT.

Заполните оба из них, сначала простым текстом, второй с текстом, отформатированным в html.

Если пользовательский клиент поддерживает html, он отобразит html-версию, если он не отобразится без форматирования.

EXTRA_TEXT требуется по стандартам, и вы всегда должны предоставить его, версия html не является обязательной.

Для более низких API-интерфейсов в библиотеке поддержки находится ShareCompat.IntentBuilder.

Edit:

Я сделал небольшой тест, и это выглядит как EXTRA_HTML_TEXT полностью игнорируется.

This answer объясняет, как отправлять html-письма. В случае, если клиентский клиент не поддерживает HTML, он получит точно такое же сообщение, что и все теги html.

+0

Спасибо! но EXTRA_HTML_TEXT требует API minSdkVersion 16, теперь мое приложение только 8 –

+0

см. обновленный. При необходимости я могу предоставить пример кода, но я думаю, что он не должен давать никаких проблем, как его использовать. – Gustek

+0

Не могли бы вы дать мне образец кода? Спасибо! –

Смежные вопросы