我正在使用最新的Facebook Android SDK對我的用戶進行身份驗證,並且我遇到了此問題。Android的Facebook登錄未處理
我有一個根活動設置,具有一個自定義的ActivityResult處理程序系統(基本上,片段可以註冊和刪除特定結果的ActivityResultHandlers,這種方式處理片段內的活動間請求的結果)。我已經擴大了這個與Facebook的CallbackManager,它的SDK文檔中描述的方式:
在我的活動,我有這樣的:
@Override
void onCreate(Bundle bundle) {
[...]
setContentView(R.layout.activity);
FacebookSdk.sdkInitialize(getApplicationContext());
facebookCallbackManager = CallbackManager.Factory.create();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
for (Map.Entry<Integer, ActivityResultHandler> entry : activityResultHandlers.entrySet()) {
if (entry.getKey() == requestCode)
entry.getValue().onActivityResultCustom(requestCode, resultCode, data);
}
super.onActivityResult(requestCode, resultCode, data);
facebookCallbackManager.onActivityResult(requestCode, resultCode, data);
}
而在我的片段,我這樣做:
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
[...]
LoginManager.getInstance().registerCallback(
((MainActivity)getActivity()).getFacebookCallbackManager(),
new FacebookCallback<LoginResult>() { [...] }
);
}
然後,我打電話LoginManager開始認證,一旦按下按鈕(我使用自定義圖形,所以FacebookLoginButton不幸)。現在
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email","user_friends","public_profile"));
,這部分工作得很好,我可以在該facebookCallbackManager.onActivityResult()
方法被調用調試器看到的。但是,進入內部後,我看到LoginManager註冊了特定的響應代碼(假設爲64206),而SDK返回的請求代碼完全不同(129742),因此LoginManager回調沒有處理。
我在做什麼錯在這裏?
沒有幫助。回調仍然沒有被處理。 – fonix232