Autoryzacja Facebooka na Androida - nie można się zalogować, gdy zainstalowana jest oficjalna aplikacja Facebook

Muszę zalogować się na Facebooku i uzyskać takie same pola, jak poczta elektroniczna itp. Korzystam z zestawu SDK Facebooka i ustawiam Hash na kluczu Android w developers.facebook i ustawiam „Configured for Android SSO”. W symulatorze i niektórych urządzeniach aplikacja działa poprawnie.

Ale jeśli oficjalna aplikacja na Facebooku jest zainstalowana na urządzeniu, moja aplikacja nie działa: naciskam przycisk logowania, ale nie widzę okna dialogowego z widokiem strony internetowej, o które proszone jest moje hasło i login. Wygląda to na problem z pytaniem Przepełnienie stosuUżywanie facebook.authorize z Android SDK nie wywołuje onActivityResult lub pytanie przepełnienia stosuJednokrotne logowanie do Android Facebook API?, ale nie mogę zrozumieć, jak to rozwiązać.

Mój kod
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    this.facebookConnector.getFacebook().authorizeCallback(requestCode, resultCode, data);
}

public void getAccessToken() {
    SessionEvents.AuthListener listener = new SessionEvents.AuthListener() {
        @Override
        public void onAuthSucceed() {
            setupAccessToken(facebookConnector.getFacebook().getAccessToken());
        }

        @Override
        public void onAuthFail(String error) {
            Toast.makeText(getApplicationContext(), getString(R.string.error_login), Toast.LENGTH_SHORT).show();
        }
    };

    SessionEvents.addAuthListener(listener);
    facebookConnector.login();
}
kod facebook
public class FacebookConnector {
    public void login() {
        if (!facebook.isSessionValid()) {
            facebook.authorize(this.activity, this.permissions, new LoginDialogListener());
        }
    }

    private final class LoginDialogListener implements DialogListener {
        public void onComplete(Bundle values) {
            SessionEvents.onLoginSuccess();
        }

        public void onFacebookError(FacebookError error) {
            SessionEvents.onLoginError(error.getMessage());
        }

        public void onError(DialogError error) {
            SessionEvents.onLoginError(error.getMessage());
        }

        public void onCancel() {
            SessionEvents.onLoginError("Action Canceled");
        }
    }
}

questionAnswers(4)

yourAnswerToTheQuestion