2010-06-30 34 views
3

我在這裏和其他地方發現了各種主題,用於創建發送電子郵件的意圖,而且看起來很簡單。我正在尋找一個旨在啓動用戶可能擁有的任何電子郵件客戶端的意圖。如何創建啓動任何電子郵件應用程序的意圖?

這是我見過發送電子郵件(公佈僅供參考,並不滿足我的需要,因爲我不想發送新郵件)代碼:

Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
i.putExtra(Intent.EXTRA_SUBJECT, "Subject of the message"); 
i.putExtra(Intent.EXTRA_TEXT , "Body of the message"); 

這裏是我放在一起通過包名專門推出Gmail客戶端代碼:

PackageManager pm = getPackageManager(); 
Intent intent = pm.getLaunchIntentForPackage("com.google.android.gm"); 
startActivity(intent); 

上面的代碼的作品,但不是用戶可能無法使用Gmail,但其他內置靈活在電子郵件應用程序或第三方電子郵件應用程序中。我正在尋找一個意圖,在這種情況下可以調出選擇器,以便用戶可以決定要啓動哪個應用程序來閱讀電子郵件。

有誰知道如何做到這一點?

回答

0

有沒有人知道如何完成 這個?

沒有這樣的Intent - 您可以通過檢查電子郵件應用程序的清單來說明這一點。

你能做的唯一的事情就是建立自己要鏈接到並使用PackageManager代碼,您上面顯示每個電子郵件客戶端的列表。

+0

謝謝,看起來這將是我必須要走的路。你會認爲這將是一種常見的意圖類型,將被納入平臺的一部分。 – afonseca 2010-07-01 07:38:04

+0

你能告訴我如何建立自己的電子郵件客戶端列表並使用packmanager嗎? – Bhargav 2016-01-06 14:34:53

+0

@Bhargav:當然歡迎您就此提出一個單獨的Stack Overflow問題。 – CommonsWare 2016-01-06 14:36:42

1

另一種方法可以是Intent.createChooser();並讓用戶 選擇正確的應用程序。

BTW列表可以不僅包含電子郵件應用程序

+0

謝謝你的另一種方法,但這韓元「T在我的情況下工作,因爲我不希望用戶必須選擇每次。 – afonseca 2010-07-01 07:39:25

5

可以一個mailto URL以某種方式來做到這一點? - 編輯 - 我能做到這一點使用下面的代碼示例:

mt = MailTo.parse("mailto:[email protected]"); 
sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{mt.getTo()}); 
sendIntent.putExtra(Intent.EXTRA_TEXT, ""); 
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Enter a subject"); 
sendIntent.setType("message/rfc822"); 
startActivity(Intent.createChooser(sendIntent, "Send a Message:")); 
+0

聰明的想法... – 2011-01-23 11:08:23

+0

這將發送一封電子郵件。這不是OP想要的。該任擇議定書表示,用黑體字表示,「我不想發送新郵件」。 – CommonsWare 2016-01-06 14:37:51

相關問題