2011-03-29 64 views
8

開始發送一封電子郵件,意圖我怎樣才能確認該郵件已發送或出現了一個錯誤回到它是從所謂的活動結束後?簡單:獲取電子郵件的確認在Android的

 Intent emailIntent = new Intent(Intent.ACTION_SEND); 
     emailIntent.setType("png/image"); 

     String subject = "Email Subject"; 

     String body = "Message Body"; 

     emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject); 
     emailIntent.putExtra(Intent.EXTRA_TEXT, body); 
     emailIntent.putExtra(Intent.EXTRA_STREAM, 
       Uri.parse("file:///sdcard/" + IMAGE_FILENAME)); 

     startActivity(Intent.createChooser(emailIntent, "Send email...")); 

     //Here I need to do something on a successfully sent email 

也許開始activityForResult?但是,如果有什麼結果,我應該期待什麼?

回答

12

這真的取決於由您Intent推出的應用程序。它可能是Gmail應用程序,可能是電子郵件應用程序,也可能是任何第三方應用程序。正因爲如此,沒有100%可靠的方式來確定用戶是否實際按發送或不。

你能做的唯一的事情就是檢查Gmail和電子郵件應用程序時,通過startActivityForResult打來電話,依賴於返回任何相關信息。但要小心,這是不可靠的,因爲再次,可能有第三方應用程序。另外,由於這些應用程序並未公開指定它們返回的內容,因此它們可能會在某些時候更改而不會有任何通知。

+0

看起來像沒有辦法獲得resultCode,那麼感謝您的幫助。 – SamRowley 2011-03-29 11:32:33

+5

當您按下取消按鈕時,Gmail應用程序也會爲resultCode返回RESULT_OK:/ – 2011-09-12 16:33:14

3

你不能從電子郵件意圖任何有用的resultCode爲。一旦發送開始或發送被取消,onActivityResult總是返回0。

Additionaly如果附加文件,onActivityResult之前這些文件的讀取調用。

1

你不能這樣做。

ACTION_SEND沒有任何輸出,結果你總是得到RESULT_CANCELED默認值。

你也不能故意數據回來檢查,因爲它始終爲空或者電子郵件發送或丟棄。