如何获取分享意图回调结果

6
我正在使用这种方法来分享我的数据源信息:

我正在使用此方法来共享我的Feed数据:

    public void shareFeed() {
        try {
            Intent intent = new Intent(android.content.Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_SUBJECT, "SUB");
            intent.putExtra(Intent.EXTRA_TEXT, "Body");
            startActivityForResult(Intent.createChooser(intent, "Choose an Email client :"), 1);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

以下是我的onActivityResult代码,但无论成功还是失败,我每次都得到空数据:
  @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
        if (resultCode == RESULT_OK) {
        }
    }
}

我希望在成功后执行调用网络服务,因此我需要共享意图回调结果。


你正在某个活动上调用startActivityForResult,你需要展示你正在填充的内容以便在活动结果中将其发送回来。 - surya
这取决于你打开的应用程序是否会发送结果。 - kgandroid
2个回答

13

ACTION_SEND 不会返回任何形式的结果。引用文档:

输出: 无

使用 startActivityForResult() 是没有意义的,你不会得到结果。

在 API 级别22(Android 5.1)和更高版本的设备上,您可以使用带有 IntentSender 参数的 createChooser() 变体。这将让你知道用户从选择器中选择了什么选项。然而:

  • 这不会告诉您用户是否发送了任何东西

  • 如果用户只是放弃选择器,我认为您并不会得到任何信息(尽管您可能会将未选择任何选项解释为放弃)


3
ACTION_SEND 的文档指出它不会生成任何输出(即不会生成结果)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接