gpt4 book ai didi

android - Session.openActiveSession 仅在 Facebook Android SDK 中调用 OPENING

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:28 31 4
gpt4 key购买 nike

我正在尝试使用 Facebook Android SDK 登录 Facebook,但是,状态回调仅在 OPENING session 状态下触发一次。在那之后,一个没有内容的 Facebook 登录 Activity 出现了一小会儿(我知道这是那个 Activity ,因为它有我在 strings.xml 中为 title_facebook_login 设置的标题)并在一秒钟内消失.没有其他回调被触发,没有异常,没有崩溃。它只是在我最初的 Activity 中永远等待。这是我的代码:

Session.openActiveSession(parent, true, new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
if(state == SessionState.OPENED){
String accessToken = session.getAccessToken();
}
}
});

为什么 SessionState.OPENED(或 CREATED,甚至 CLOSED)的回调不会触发,而只是 OPENING?

最佳答案

你需要调用onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiHelper.onActivityResult(requestCode, resultCode, data);
}

所以当登录完成时。它与 session state is opened

相同的 Activity 和调用状态回调

初始化UiLifecycleHelper

private UiLifecycleHelper uiHelper;

oncreate中需要在setContentView之前调用

uiHelper = new UiLifecycleHelper(this, statusCallback);
uiHelper.onCreate(savedInstanceState);

并且需要在

中维护session
    @Override
protected void onResume() {
super.onResume();
uiHelper.onResume();
}

@Override
protected void onPause() {
super.onPause();
uiHelper.onPause();
}

@Override
protected void onDestroy() {
super.onDestroy();
uiHelper.onDestroy();
}

关于android - Session.openActiveSession 仅在 Facebook Android SDK 中调用 OPENING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23321360/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com