簡體   English   中英

Facebook Android SDK 4.0.1-未調用回調

[英]Facebook android sdk 4.0.1 - callbacks not called

我目前正在編寫一些測試,在這些測試中,我通過自己的FakeFacebookActivity “模擬” FacebookActivity ,其唯一目的是關閉自身並設置結果代碼。 因此,這里而不是使用: LoginManager.getInstance().logInWithReadPermissions(activity, Arrays.asList("email")); 哪個啟動了真正的Facebook登錄頁面,我改為執行以下操作:

Intent fakeFbIntent = new Intent(activity, FakeFbLoginActivity.class);
fakeFbIntent.putExtra("resultCode", 0);
activity.startActivityForResult(fakeFbIntent, 64206);

這兩種方法在其處理過程的最后都屬於調用活動的onActivityResult() 。因此,要調用facebook回調(在FacebookCallback<LoginResult>那些),我以這種方式編寫onActivityResult()

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        CallbackManager.Factory.create().getCallBackManager().onActivityResult(requestCode, resultCode, data);
}

這里的問題是,當我使用LoginManager.getInstance().logInWithReadPermissions(activity, Arrays.asList("email"));時,將調用這些回調LoginManager.getInstance().logInWithReadPermissions(activity, Arrays.asList("email")); 但是不能用我的假方法 我在這里想念什么? 謝謝。

您必須將回調管理器路由到您的FakeActivity,然后它將調用您的回調。 您需要查看LoginManager如何注冊其回調。 您需要使用CallbackManagerImpl。 請注意,CallbackManagerImpl是內部的,並且可以隨時更改,恕不另行通知。

直接從FakeFbLoginActivity或onActivityResult調用回調可能更簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM