gpt4 book ai didi

android - facebook android SSO 完成,但 Activity 关闭而不调用 onActivityResult()

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:17 25 4
gpt4 key购买 nike

我遇到的问题正如标题所暗示的那样。我进行了 authorize() 调用,但永远无法调用 authorizeCallback(),因为从未调用过 onActivityResult()。 SSO 确实完成了,因为它显示了权限屏幕(带有不允许/允许)并且应用批准显示在我的 Facebook 设置页面上。有任何想法吗?我认为这可能与 Activity 的启动模式有关,但删除了“singleInstance”并且没有任何区别。

如上所述,我可以确认权限 Activity 已在 Facebook.java 中启动。

 try {
Log.e("@@@", "Starting activity");
activity.startActivityForResult(intent, activityCode);
} catch (ActivityNotFoundException e) {
didSucceed = false;
}

对于它的值(value),我可以确认下面使用的代码。

我已经在 onActivityResult() 中实现了 authorizeCallback() 方法:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
mStateHolder.getFacebook().authorizeCallback(requestCode, resultCode, data);
}

.. 但它从未被调用过。我使用的授权方法如下:

facebook.authorize(this, new String[]{ "user_birthday" }, new DialogListener() {
public void onComplete(Bundle values) {
Log.e(TAG, "onComplete()");
// I make a request here..
}
// ...with the other methods as well
}

其他可能有用的信息:

  • 我运行的是 Nexus One,2.3.4
  • 已安装 Facebook 应用
  • 如果我强制使用 Dialog 方法,它工作正常,但我正在尝试让 SSO 工作。
  • 编辑:呃!经过大量搜索,我发现了问题所在。 Intent 中有一个流氓 Intent.FLAG_ACTIVITY_NO_HISTORY 标志(它不会将 Activity 保留在堆栈中)。感谢大家尝试回答这个问题。

    EDIT2:删除 launchMode=singleInstance 也确实有所不同。顺便说一句。我开始收到错误“无法读取调用包的签名”。

    最佳答案

    您如何完成身份验证 Activity ?您必须设置结果类型并可能发回一个值。例如:

    Intent data = new Intent();
    data.putExtra(ApplicationConstants.EXTRA_IS_DONE, true);
    setResult(RESULT_OK, data);
    finish();

    关于android - facebook android SSO 完成,但 Activity 关闭而不调用 onActivityResult(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931784/

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