我希望我的應用程序的用戶能夠發送電子郵件,然後返回到我的應用程序。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嗎?我可以在所有設備上預測相同的行爲嗎?
感謝
/馬蒂亞斯