Facebook-Autorisierung für Android - Anmeldung nicht möglich, wenn die offizielle Facebook-App installiert ist

Ich muss mich bei Facebook anmelden und die gleichen Felder wie E-Mail usw. erhalten. Ich verwende das Facebook SDK und stelle meinen Android-Schlüssel-Hash in developers.facebook und "Konfiguriert für Android SSO" ein. Im Simulator und einigen Geräten funktioniert die Anwendung einwandfrei.

Wenn jedoch die offizielle Facebook-Anwendung auf dem Gerät installiert ist, funktioniert meine Anwendung nicht: Ich drücke auf den Anmeldebutton, aber es wird kein Dialogfeld mit einer Webansicht angezeigt, in dem nach meinem Passwort und der Anmeldung gefragt wird. Es sieht wie das Problem in der Stapelüberlauffrage ausWenn Sie facebook.authorize mit dem Android SDK verwenden, wird onActivityResult nicht aufgerufen oder Stapelüberlauf FrageAndroid Facebook API Single Sign-On?, aber ich kann nicht verstehen, wie man es löst.

Mein Code
@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();
}
facebookConnector-Code
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");
        }
    }
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage