随着分享弹出窗口显示,我成功分享了WhatsApp上的内容,但仍然返回RESULT_CANCELLED。使用Gmail发送电子邮件时的结果相同。
调用分享意图,ACTION_SEND
与startActivityForResult
始终返回CANCELLED
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_TITLE, "Taxeeta, Cab Around The Curb");
sharingIntent
.putExtra(
android.content.Intent.EXTRA_TEXT,
"Hiring a cab no longer needs you to wait on call centers, or pay a"
+ " convenience (yeah right!!) charge. Taxeeta connects you"
+ " to drivers directly, for a quick book experience. With Taxeeta"
+ " you can take matters in your own hands (literally). To download"
+ " the app for your phone visit http://www.taxeeta.com");
startActivityForResult(Intent.createChooser(sharingIntent, "Share and earn a extra Priviledge"), 111);
ActivityForResult Code
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 111) {
if (resultCode == RESULT_OK) {
Toast.makeText(this, "Ok DUDE", Toast.LENGTH_LONG).show();
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Oversmart Eh!!", Toast.LENGTH_LONG).show();
}
}
}
答案 0 :(得分:36)
startActivityForResult()
仅适用于那种打算调用的活动。如果您调用的活动未显式返回结果,您将获得默认结果RESULT_CANCELED。显然,ACTION_SEND
并非旨在以这种方式调用。 ACTION_SEND
的{{3}}表示不生成输出(即:不生成结果)。
请参阅Activity.startActivityForResult()
的{{3}}:
请注意,此方法只应与Intent协议一起使用 被定义为返回结果。在其他协议中(例如 ACTION_MAIN或ACTION_VIEW),你可能无法得到结果 期望。例如,如果您要启动的活动使用 singleTask启动模式,它不会在你的任务中运行,因此你会 立即收到取消结果。
答案 1 :(得分:0)
我有同样的问题,我认为结果将始终是“已取消”,因为即使发送电子邮件或没有活动将被杀死。