2012-03-14 59 views
7

我試圖直接在按鈕單擊時打開Gmail的電子郵件發送表單,但始終顯示發送電子郵件的選項列表。在Android中使用GMail發送電子郵件

我做這行開啓Gmail形式:

  Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
      String[] recipients = new String[]{"" , "" ,}; 
      emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients); 
      emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "This is my text"); 
      emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, ""); 
      emailIntent.setType("message/rfc822"); 
      startActivity(Intent.createChooser(emailIntent, "Send Email")); 

,但這是不開放的GMail形式。我能做些什麼來打開GMail表單,請幫忙。

有沒有辦法做到這一點?

+1

你看到一個選項列表的原因是因爲你使用'Intent.createChooser(...)'。在你的情況下,這總是會創建一個應用程序列表,它可以爲mime類型的message/rfc822處理'ACTION_SEND'。沒有辦法明確告訴它使用GMail。你可以在沒有'createChooser(...)'的情況下嘗試它,並且(如果你幸運的話)用戶可能已經將GMail設置爲他們的默認郵件應用程序。如果你是幸運的話。如果他們將默認設置爲anothe郵件應用程序,它將使用它。我不確定有可能做你想做的事。當然不是用'createChooser(...)'。 – Squonk 2012-03-14 18:51:38

回答

16

使用的東西上線

public void sendGmail(Activity activity, String subject, String text) { 
    Intent gmailIntent = new Intent(); 
    gmailIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail"); 
    gmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
    gmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, text); 
    try { 
     activity.startActivity(gmailIntent); 
    } catch(ActivityNotFoundException ex) { 
     // handle error 
    } 
} 
+0

它在這個'activity.startActivity(gmailIntent)'行上給出'空指針異常'。 – Pari 2012-03-14 19:09:04

+0

確保你傳遞了當前活動對象,你也可以在你的activity類中添加這個方法並調用startActivity(gmailIntent);直接 – mkso 2012-03-14 19:15:57

+0

現在感謝這工作正常。我在它之前傳遞'getParent()',這使我的應用程序崩潰。 – Pari 2012-03-14 19:20:27

相關問題