문제

의도를 사용하여 일반 텍스트 이메일을 보내는 방법을 찾았습니다.

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new     
String[]{"example@mail.com"}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test");

그러나 HTML 형식의 텍스트를 보내야합니다.
settype ( "text/html")를 시도하는 것은 작동하지 않습니다.

도움이 되었습니까?

해결책

당신은 통과 할 수 있습니다 Spanned 여분의 텍스트. 의도가 이메일을 처리하는 활동 (예 : gmail 및 이메일 앱) 만 해결하려면 사용할 수 있습니다. ACTION_SENDTO Mailto 계획으로 시작하는 URI와 함께. 수신자를 미리 알지 못하는 경우에도 효과가 있습니다.

final Intent shareIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"));
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "The Subject");
shareIntent.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(new StringBuilder()
    .append("<p><b>Some Content</b></p>")
    .append("<small><p>More content</p></small>")
    .toString())
);

다른 팁

이것은 HTML에 매우 도움이되었지만 Action_Sendto는 저와 그대로 작동하지 않았습니다. 여기에서 변형을 찾았습니다.

http://www.coderanch.com/t/520651/android/mobile/no-application-pormat-action--

그리고 여기 두 가지를 결합한 내 코드가 있습니다.

String mailId="yourmail@gmail.com";
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, 
                                Uri.fromParts("mailto",mailId, null)); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject text here"); 
// you can use simple text like this
// emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Body text here"); 
// or get fancy with HTML like this
emailIntent.putExtra(
         Intent.EXTRA_TEXT,
         Html.fromHtml(new StringBuilder()
             .append("<p><b>Some Content</b></p>")
             .append("<a>http://www.google.com</a>")
             .append("<small><p>More content</p></small>")
             .toString())
         );
startActivity(Intent.createChooser(emailIntent, "Send email..."));

나는 (아직) Android 개발을 시작하지는 않았지만 선적 서류 비치 의도에 따르면 extra_text를 사용하는 경우 마임 유형은 텍스트/평원이어야합니다. HTML을보고 싶다면 대신 extra_stream을 사용해야 할 것 같습니다 ...

Gmail 앱을 통해 한동안 HTML을 보내려고 했으므로 다른 사람이 비슷한 문제가있는 경우를 대비하여 내가 찾은 것에 대한 통찰력을 남기기로 결정했습니다.

내가 한 일에 관계없이 HTML에 대담한 텍스트를 가질 수 없었습니다. 그런 다음 Outlook Client로 전환을 시도했지만 놀랍게도 잘 작동했습니다. HTML Markup은 다른 오래된 장치에서도 작업하고 있었지만 (Galaxy S7 API 26), Gmail 앱은 의도에서 나오는 HTML 구문에 대한 지원을 떨어 뜨린 것으로 보인다. 명확하게 문서화되지 않은 매우 구체적인 방식으로.

저를 위해 일한 마지막 Gmail 버전은 Nexus 5X API 25 에뮬레이터 (Nougat)에서 버전 6.9.25였습니다. Nexus 5X API 26 에뮬레이터 (OREO)에서 시작 버전 7.5.21 작동 중지 중지되었습니다.

"extra_html_text"에 대해 "extra_text"를 변경해야합니다.

https://developer.android.com/reference/android/content/intent.html#extra_html_text

텍스트 영역에 HTML을 추가하려고하는 것은 어떻습니까?

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "<strong>Test</strong>");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top