Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确认Android共享意图是否成功或完成_Android_Facebook_Android Intent_Share_Android Sharing - Fatal编程技术网

如何确认Android共享意图是否成功或完成

如何确认Android共享意图是否成功或完成,android,facebook,android-intent,share,android-sharing,Android,Facebook,Android Intent,Share,Android Sharing,有没有办法确认安卓系统的共享意向是成功还是失败?(例如,如果我共享一篇Facebook帖子,我想知道它是否成功发布或是否被取消。) 下面是我用来分享的Android意图代码。目前,它会启动一个对话框,允许用户选择要共享到的应用程序: Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(android.

有没有办法确认安卓系统的共享意向是成功还是失败?(例如,如果我共享一篇Facebook帖子,我想知道它是否成功发布或是否被取消。)

下面是我用来分享的Android意图代码。目前,它会启动一个对话框,允许用户选择要共享到的应用程序:

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);    
activity.startActivity(Intent.createChooser(shareIntent, title));

就我个人而言,我正要说“使用
startActivityForResult()
”并检查返回的内容。然而,正如你所能做的,事情并没有那么简单。如果用户取消了意图,则返回的数字与意图完成时的数字相同(对于大多数应用)


最终,为了实现更简单的共享意图,目前一般来说,您无法检查它是否成功。

如果是FacebookShareDialog,请使用请求代码构建对话框,然后打开活动检查请求代码和结果代码。为此,Facebook Sdk中有一个名为UiLifecycleHelper的类

在onCreate方法中

uiHelper = new UiLifecycleHelper(this, null);
uiHelper.onCreate(savedInstanceState);




 FacebookDialog fbShardialog = new FacebookDialog.ShareDialogBuilder(
                        MainActivity.this)
                        .setLink("http://www.claro.com.ar/")
                        .setPicture("imagepath").setRequestCode(12)
                        .build();

                uiHelper.trackPendingDialogCall(fbShardialog.present());



OnActivityResult


 if (requestCode == 12) {
        if (resultCode == RESULT_OK) {
            //  show sucess message

        }
 else
//show failure message

    }

谢谢你的回答。如果我想特别使用Facebook/Twitter/E-mail来实现共享目的,我如何确认共享是否成功?对于一般共享目的,你必须测试所有三个,看看它们成功后会返回什么结果,然后取消。Twitter至少能起作用,但对于Facebook,我怀疑它能起作用。现在,这只是猜测,超出了这个问题的范围,但“特定意图”可能会起作用。但是,有哪些特定的意图/活动链接到Facebook+Twitter(+Email?)API,然后返回成功或失败的值?换句话说,如果你想知道这些成功与否,你可能需要自己处理。但是,如果已经有特定的意图(或活动)用于这些目的,请使用它们。我希望在用户共享成功后调用api。那我该怎么办?请帮助。为什么你需要知道用户是否共享了它?这是为了跟踪用户的行为。你知道你不允许鼓励共享吗?不允许您预先填充消息参数?@WizKid我使用外部url构建了一个共享意图,我正在寻找一个解决方案来删除共享意图成功后生成的图像Facebook可能会稍后再下载。此类在最新版本的SDK中不再可用。