我可以第一次登录。我有一个选项,用户可以在Android应用程序中禁用Facebook。选择此项后,facebook状态将变为CLOSED。当我再次使用该选项时,要在API中重新登录,请在回调函数中的OPENING处挂起。
根据我发现的第一个调用示例
session.openForRead(new Session.OpenRequest(activity).setCallback(statusCallback));
,第二次使用
Session.openActiveSession(activity, true, statusCallback);
回调函数如下所示:
private static class SessionStatusCallback implements Session.StatusCallback {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
GlobalVars.setUser(user.getName());
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(GlobalVars.getContext());
Editor editor = prefs.edit();
editor.putBoolean("facebook", true);
editor.commit();
System.out.println("facebook logged in");
}
}
});
}
System.out.println("facebook session state callback " + session.getState().toString());
}
}
答案 0 :(得分:8)
我不确定我们是否有确切的问题,但我的facebook的会话状态在Session.openActiveSession(activity, true, statusCallback);
之后保留“打开”。我已经覆盖了片段中的onActivityResult()
。我为解决这个问题所做的是改写我的Activity上的方法。