вход в facebook из моего приложения работает на эмуляторе, но не на устройстве

Это мой код для входа в facebook.

mLoginButton = (LoginButton) findViewById(R.id.login);

        // restore session if one exists
        SessionStore.restore(Utility.mFacebook, this);
        SessionEvents.addAuthListener(new FbAPIsAuthListener());
        SessionEvents.addLogoutListener(new FbAPIsLogoutListener());

        /*
         * Source Tag: login_tag
         */
        mLoginButton.init(this, AUTHORIZE_ACTIVITY_RESULT_CODE, Utility.mFacebook, permissions);

        if (Utility.mFacebook.isSessionValid()) {
            requestUserData();
        }
 public class FbAPIsAuthListener implements AuthListener {

        //@Override
        public void onAuthSucceed() {
            requestUserData();
        }

        //@Override
        public void onAuthFail(String error) {
            mText.setText("Login Failed: " + error);
        }
    }

    /*
     * The Callback for notifying the application when log out starts and
     * finishes.
     */
    public class FbAPIsLogoutListener implements LogoutListener {
        //@Override
        public void onLogoutBegin() {
            mText.setText("Logging out...");
        }

        ///@Override
        public void onLogoutFinish() {
            mText.setText("You have logged out! ");
            mUserPic.setImageBitmap(null);
        }
    }

на эмуляторе он работает идеально. Я пробовал в тоннах 3 устройства, которые уже установлены facebook, и вот проблема.

Он просто вращается вокруг загрузки, и он ничего не делает. Я снова вижу кнопку "Вход". Затем я попытался выйти из исходного приложения facebook, и при нажатии кнопки входа в мое приложение я вижу окно входа в систему, но теперь, когда я раньше видел при входе в эмулятор но окно входа в исходное приложение facebook. Как будто это началось.

код я использую взята из hackbook.java

2 ответов


статус платформы говорит, что есть проблема с SSO.

SSO работает, только если у вас есть приложение facebook, установленное на устройстве android, и то, что вы описываете, вписывается во все это. В эмуляторе у вас нет приложения facebook, и поэтому, когда ваше приложение пытается войти в систему, пользователь использует диалоговое окно в sdk вместо использования процесса SSO, который поставляется с приложением fb.

на устройстве, как вы сказали что у вас есть приложение fb, и поэтому SSO запускается, и, по крайней мере, в настоящее время с ним есть проблема. Попробуйте удалить приложение facebook на устройстве или, возможно, просто отменить SSO, т. е.:Как отключить единый вход Facebook для android-Facebook-android-sdk


вам нужно создать хэш-ключ вашей системы и просто разместить его, отредактировав существующее приложение facebook.