如何获得Share Intent回调结果

时间:2016-09-20 11:33:09

标签: android android-intent

我正在使用此方法来分享我的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) {
        }
    }
}

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

2 个答案:

答案 0 :(得分:9)

ACTION_SEND不会返回任何形式的结果。引用the documentation

  

输出:没有

使用startActivityForResult()毫无意义,您将无法获得结果。

在API Level 22(Android 5.1)及更高版本的设备上,欢迎您使用以createChooser()为参数的IntentSender变体。这将让您知道用户从选择器中做出的选择。但是:

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

  • 如果用户放弃选择器,我认为你没有发现任何东西(尽管你可能会认为没有选择表示放弃)

答案 1 :(得分:2)

ACTION_SEND的documentation表示没有输出(即:不生成结果)。