Android facebook LoginManager.getInstance()。logOut()没有登录Facebook登录进行下次登录呼叫

时间:2016-03-12 12:18:36

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

我正在使用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));
    }
}

2 个答案:

答案 0 :(得分:1)

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

感谢@ kishansolanki124提及此事。不推荐使用此方法。提到的工作是here

答案 1 :(得分:0)

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