2011-12-14 33 views
1

我試圖在Android上啓動配置的電子郵件客戶端來發送附件。事情是,當我在模擬器中執行它時,沒有配置電子郵件客戶端進行任何發送。我還配置了onActivityResult()來試圖阻止程序中的火車殘骸,但是當事情爆炸時它似乎沒有得到控制。爲什麼?android:檢查爲intent.ACTION_SEND配置的操作?

這是我的意圖:

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("text/plain"); 
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{""}); 
intent.putExtra(Intent.EXTRA_SUBJECT, CSV_MAIL_SUBJECT); 
intent.putExtra(Intent.EXTRA_TEXT, CSV_MAIL_MSGBODY); 
intent.putExtra(Intent.EXTRA_STREAM, createCSV.tempfile.toURI()); 
try 
{ 
    startActivityForResult (intent, CSV_MAIL_RESULT_CODE); 
} 
catch (ActivityNotFoundException anf) 
{ 
    Log.d (TAG, "Activity not configured."); 
    //TODO: toast or something here.. 
} 

回答

1

的是,當我在模擬器中做到這一點,有配置做任何發送

這要引起ActivityNotFoundException沒有電子郵件客戶端從你的startActivityForResult()來電。

順便說一句,你的MIME類型是錯誤的。它應該是text/plain

我還配置了onActivityResult()來嘗試和停止程序內的列車殘骸,但它似乎並沒有得到控制,當事情爆炸。爲什麼?

因爲,如果我是對的,startActivityForResult()失敗,所以你永遠不會被onActivityResult()調用。

+0

謝謝!你兩個都是對的。我爲ActivityNotFoundException添加了try/catch,並能夠像我想要的那樣獲得控制權。此外,一旦我將純文本/文本更改爲純文本,郵件應用程序確實出現了。上面的代碼更改以反映更正。 – wufoo 2011-12-15 20:33:19