2014-03-27 116 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