[英]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.