Search code examples
androidfacebookfacebook-loginfacebook-android-sdk

Android facebook LoginManager.getInstance().logOut() not taking to Facebook login for next login call


I am using facebook sdk 4.9.0 for facebook login. Facebook login is working correctly but what I want is every time user tries to do login with facebook he should be shown facebook login screen. Currently, if user is already logged in to the facebook app, facebook login screen is not shown but I get success for login request.

Here is code that I am using

public void goToFacebookLogin() {

    LoginManager.getInstance().logOut();

    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    Timber.i("FB login success:" + loginResult.getAccessToken().getToken());
                }

                @Override
                public void onCancel() {
                    Timber.e("FB login cancel");
                    showErrorMessage(getString(R.string.string_error_facebook_login_cancelled));
                }

                @Override
                public void onError(FacebookException error) {
                    Timber.e("FB login error:" + Log.getStackTraceString(error));
                    showErrorMessage(getString(R.string.string_error_facebook_login));

                }
            });

    if (fbPermissions.isEmpty()) {
        fbPermissions.addAll(Arrays.asList(getResources().getStringArray(R.array.string_array_fb_permissions)));
    }
    if (Utils.isNetworkAvailable(this)) {
        showProgressBar();
        LoginManager.getInstance().logInWithReadPermissions(this, fbPermissions);
    } else {
        showErrorMessage(getString(R.string.string_error_no_network));
    }
}

Solution

  • you have to initialise the FacebookSDK. use FacebookSDK.SDKInitialize().

    Thanks to @kishansolanki124 for mentioning this. This method is deprecated. The work around is mentioned here.