Android facebook LoginManager.getInstance().logOut() 下一次登录调用时未登录 Facebook

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

我正在使用 facebook sdk 4.9.0 进行 facebook 登录。 Facebook 登录工作正常,但我想要的是每次用户尝试使用 Facebook 登录时,他都应该显示 Facebook 登录屏幕。 目前,如果用户已经登录到 facebook 应用程序,则不会显示 facebook 登录屏幕,但我的登录请求成功。

这是我正在使用的代码

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));
    }
}

您必须初始化 FacebookSDK。 使用 FacebookSDK.SDKInitialize().

感谢@kishansolanki124 提到这一点。此方法已弃用。提到了解决方法 .

GraphRequest(AccessToken.getCurrentAccessToken(),
          "/me/permissions/", null, HttpMethod.DELETE,
          GraphRequest.Callback {
             AccessToken.setCurrentAccessToken(null)
             LoginManager.getInstance().logOut()
          }).executeAsync()