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

时间:2012-04-20 16:22:24

标签: 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);
        }
    }

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

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

我使用的代码来自hackbook.java

2 个答案:

答案 0 :(得分:4)

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

只有在Android设备上安装了facebook应用程序时才能使用SSO,并且您所描述的内容适合所有这些。 在模拟器上你没有facebook应用程序,所以当你的应用程序试图在其中记录用户时,使用它在sdk中的对话框而不是使用fb应用程序附带的SSO进程。

在设备上你怎么说你有fb应用程序,所以SSO开始,至少目前,它有问题。 尝试在设备上卸载facebook应用程序,或者只是取消SSO,即:How to disable Facebook single sign on for android - Facebook-android-sdk

答案 1 :(得分:0)

您需要生成系统的哈希键,然后通过编辑现有的Facebook应用程序来放置它。