2014-03-27 83 views
4

我用下面的代码在我的Android应用程序共享的东西:回调完成

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
shareIntent.setType("text/plain"); 
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "blah blah blah"); 
this.startActivity(Intent.createChooser(shareIntent, "Choose a sharing option:")); 

我需要知道,如果用户做了分享成功或者失败。无论如何要在共享操作完成时进行回叫?

+3

如果我正确地阅读了您的问题,并且您正在使用第三方应用“分享”(例如,facebook,twitter等),那么您的应用不太可能使用“ACTION_SEND”接收任何成功/失败响应。特别是'startActivity(...)'没有响应的功能,例如你需要使用'startActivityForResult(...)'。即便如此,它依赖于实现该功能的各种第三方应用程序来返回结果。你可以这样做的唯一方法是使用开发库和API(如果它们存在于第三方应用程序中)。 – Squonk

+0

我需要知道用户是否能够成功分享到Facebook和Twitter。我注意到,使用startActivityForResult(...)不会告诉我用户是否与成功共享。你认为他们的api会支持吗? – JHNeves

+1

正如我所说的,大多数第三方应用程序在启动'startActivityForResult'时不会返回明智的结果。原因是这些应用程序不知道你想要什么样的结果,或者你的应用程序能够理解他们可能会返回的任何结果。至于他们的apis是否支持它,我不知道我从来没有为fb或twitter编过程序 - 我猜他们会使用各种应用程序(YouTube作为一个简单示例)告诉我我是否成功共享。 – Squonk

回答

3

使用startActivityForResult,该方式将能够检查响应。请检查: startActivityForResult

如果您需要对流程有更多控制权,则不应使用“共享意向”方法。相反,您可以使用twitter4j库和Twitter的Facebook SDK以及Facebook的Facebook共享。

+5

它不起作用。这取决于你打开的应用程序发送的结果是否返回结果。如果不是,那么你总是会得到RESULT_OK以外的结果代码 –

+1

确实不行。但至少我得到了一个回调,但我需要的不仅仅是这些。 – JHNeves

+2

@KetanAhir是对的,但我认为这是你在这种情况下唯一的选择。如果您想对流程拥有更多的控制权,那么您无法使用共享意图方法。 – hmartinezd