我希望我的应用程序的用户能够发送电子邮件,然后返回到我的应用程序。Intent.ACTION_SEND是一个有效的startActivityForResult()的intent协议吗?
我实现了这个功能类似下面
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Message subject");
emailIntent.putExtra(Intent.EXTRA_TEXT , "Message text");
try {
startActivityForResult(Intent.createChooser(emailIntent, "Send mail..."), 42);
} catch (android.content.ActivityNotFoundException ex) {
Toast toast = Toast.makeText(getApplicationContext(), "There are no email clients installed.", Toast.LENGTH_SHORT);
toast.show();
}
我已经测试在HTC感觉的执行情况,并能正常工作,至少选择Gmail应用程序时。
我的问题是在文档中本节startActivityForResult() “注意,此方法只应与被定义为返回一个结果意向协议来使用。在其他协议(如ACTION_MAIN或ACTION_VIEW),你可能例如,如果您正在启动的活动使用singleTask启动模式,它将不会在您的任务中运行,因此您将立即收到取消结果。“
我已经搜索了意图协议的列表,这些协议是用来从startActivityForResult()中使用的,但没有找到任何协议。
有没有这样的清单?
可以从startActivityForResult()使用Intent.ACTION_SEND吗?我可以在所有设备上预测相同的行为吗?
感谢
/马蒂亚斯