为什么在使用Facebook登录按钮调用CallbackManager上的onActivityResult()后绝对没有任何反应?

时间:2015-04-18 15:18:21

标签: java android facebook facebook-login facebook-android-sdk

我一直在试图弄清楚如何解决这个问题但是没有成功。

此处的问题是在点击登录按钮后,它会正常加载Facebook活动,当它完成时,我的活动会收到活动结果并通知CallbackManager(所有内容都在文档中描述)。

不幸的是,从这一点来看没有任何反应,注册的FacebookCallback没有执行任何方法,甚至没有记录一行来通知错误。

以下是涉及的文件:

public class LoginActivity extends Activity

    CallbackManager callbackManager;
    LoginButton loginFacebook;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(this);

        setContentView(R.layout.activity_login);


        ...


        callbackManager = CallbackManager.Factory.create();
        loginFacebook = (LoginButton) findViewById(R.id.login_button);
        loginFacebook.setReadPermissions("public_profile","email");
        loginFacebook.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

            @Override
            public void onSuccess(LoginResult loginResult) {
                ...
                (This is never executed)
            }

            @Override
            public void onCancel() {
                ...
                (Not executed)
            }

            @Override
            public void onError(FacebookException e) {
                ...
                (Not executed either)
            }
        });

    }



    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(resultCode, resultCode, data);
        super.onActivityResult(requestCode, resultCode, data);
    }


    ...


}

activity_login.xml包含这样的按钮

<com.facebook.login.widget.LoginButton
            android:id="@+id/login_button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_horizontal"/>

我还在我的Android清单文件中添加了Facebook活动和APP ID

<activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />

以及facebook应用程序中的android app键。

希望为此找到解决方案,非常感谢。

2 个答案:

答案 0 :(得分:2)

好的我现在看到了。这可能是错误的

callbackManager.onActivityResult(resultCode, resultCode, data);

请参阅resultCode输入两次。你想要做的是:

callbackManager.onActivityResult(requestCode, resultCode, data);

答案 1 :(得分:1)

尝试在应用程序

之间的manifest.xml中添加它
<activity
            android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" /><activity