Facebook android sdk 4.0.1 - 未调用回调

Facebook android sdk 4.0.1 - callbacks not called

我目前正在编写一些测试,其中我 "mock" 我自己 FacebookActivity FakeFacebookActivity 的唯一目的是关闭自身并设置结果代码。所以在这里,我没有使用:LoginManager.getInstance().logInWithReadPermissions(activity, Arrays.asList("email")); 启动真正的 facebook 登录页面,而是执行以下操作:

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

这两种方法,在它们的过程结束时都属于调用 activity.Therefore 的 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")); 不是我伪造的方法时调用这些回调 。我在这里错过了什么?谢谢。

您必须将回调管理器路由到您的 FakeActivity,然后它将调用您的回调。您需要查看 LoginManager 如何注册它的回调。您需要使用 CallbackManagerImpl。请注意,CallbackManagerImpl 是内部的,可以更改,恕不另行通知。

直接从 FakeFbLoginActivity 或 onActivityResult 调用回调可能更简单。