【问题标题】:Android: Check session facebook do not work?Android:检查会话 facebook 不起作用?
【发布时间】:2014-01-03 08:06:35
【问题描述】:

我使用此代码检查天气用户是否登录 facebook,如果没有,它将打开登录页面。我在 facebook sdk(PlacePickerSample) 上使用与示例相同的代码:

private boolean ensureOpenSession() {
    if (Session.getActiveSession() == null ||
            !Session.getActiveSession().isOpened()) {
        Session.openActiveSession(this, true, new Session.StatusCallback() {
            @Override
            public void call(Session session, SessionState state, Exception exception) {
                onSessionStateChanged(session, state, exception);
            }
        });
        return false;
    }
    return true;
}

但它不起作用。它只是进入黑色背景,然后立即返回我的应用程序。有人知道为什么吗?

谢谢。

【问题讨论】:

  • 我的错: 删除 android:launchMode 和它应该可以...
  • 调用 session.isOpened() 来检查会话是否已经打开。
  • 我遇到了这个确切的问题,我在清单中没有看到 launchMode="singleInstance",所以我猜这对我来说没有错。其他任何人都可以阐明这个问题吗?

标签: android session login


【解决方案1】:

我遇到了同样的问题,在很多地方打印出会话信息后,我发现我抛出了以下异常:

Session: an attempt was made to reauthorize a session that has a pending request

解决方案是将以下方法放在调用 ensureOpenSession 的代码中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}

【讨论】:

  • 这不完全是我的问题。如果您不这样覆盖 onActivityResult(),您的应用程序仍会打开登录页面,但它无法保存您的会话。登录后还是没有登录!!!但是我标记了你的答案,有人可能需要它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 2023-02-13
  • 1970-01-01
相关资源
最近更新 更多