从我的应用程序登录到Facebook可以在模拟器上运行但不在设备上运行

qwe*_*_gr 7 android facebook facebook-graph-api facebook-android-sdk

这是我登录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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在模拟器上它完美无缺.我已尝试过已安装facebook的第3批设备,这就是问题所在.

它只是在装载时旋转,它什么也没做.我再次看到登录按钮.然后我尝试从原始的facebook应用程序注销,当我按下我的应用程序上的登录按钮时,我看到登录窗口,但现在我曾经看到登录模拟器但登录原始facebook应用程序的登录窗口.就像是已经开始这一个.

我使用的代码来自hackbook.java

Nit*_*mer 5

平台状态表明 SSO 存在问题。

SSO 仅在您在 android 设备上安装了 facebook 应用程序时才有效,并且您所描述的内容适合所有这些。在模拟器上,您没有 facebook 应用程序,因此当您的应用程序尝试让用户登录时,它会使用它在 sdk 中的对话框,而不是使用 fb 应用程序附带的 SSO 进程。

在设备上,您曾说过您确实有 fb 应用程序,因此 SSO 启动了,至少目前,它存在问题。尝试卸载设备上的 facebook 应用程序,或者只是取消 SSO,即:如何为 android 禁用 Facebook 单点登录 - Facebook-android-sdk