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

Viewed 4194

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));
    }
}
2 Answers
GraphRequest(AccessToken.getCurrentAccessToken(),
          "/me/permissions/", null, HttpMethod.DELETE,
          GraphRequest.Callback {
             AccessToken.setCurrentAccessToken(null)
             LoginManager.getInstance().logOut()
          }).executeAsync()
Related