在google和stackoverflow中進行了一些研究後,我瞭解到我可以爲Android中的不同應用發送不同內容,如here。Android在電子郵件中共享html文本並在其他應用中共享純文本
但是,我遇到了一些問題。
如果選擇了任何郵件客戶端(手機默認郵件客戶端,Gmail應用程序,Outlook應用程序及其他),我想發送HTML電子郵件。在上面的鏈接中,我需要分別指定每個郵件應用程序,這是我想避免的。
當我嘗試通過GMAIL應用程序發送HTML電子郵件。它沒有像預期的那樣格式化。
在google和stackoverflow中進行了一些研究後,我瞭解到我可以爲Android中的不同應用發送不同內容,如here。Android在電子郵件中共享html文本並在其他應用中共享純文本
但是,我遇到了一些問題。
如果選擇了任何郵件客戶端(手機默認郵件客戶端,Gmail應用程序,Outlook應用程序及其他),我想發送HTML電子郵件。在上面的鏈接中,我需要分別指定每個郵件應用程序,這是我想避免的。
當我嘗試通過GMAIL應用程序發送HTML電子郵件。它沒有像預期的那樣格式化。
我想發送HTML電子郵件,如果任何郵件客戶端選擇
還有就是要查詢有關這是用來僅發送電子郵件的活動,沒有這樣的辦法,Intent.ACTION_SEND
將得到所有能夠發送您定義的MIME_TYPE
的應用程序。
例如,如果使用plain/text
作爲MIME_TYPE
,則將返回所有可共享plain/text
的客戶端。這取決於用戶 - 他們想要分享哪個應用程序。但是,您可以比較軟件包名稱以確保選擇哪個應用程序。
假設,要檢查是否選擇了Gmail客戶端,
// Query about app that can send `text/plain`
final Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT,"text");
final List<ResolveInfo> activities = getPackageManager().queryIntentActivities (i, 0);
// Check if gmail is clicked, when the `chooser` item is clicked,
ResolveInfo info = activities.get(position);
if (info.activityInfo.packageName.contains("com.google.android.gm")) {
// Gmail was chosen
}
當我嘗試通過Gmail應用程序發送的HTML電子郵件。它不是 格式化它應該。