2011-12-14 92 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