我一直在試圖弄清楚如何解決這個問題,但不成功。爲什麼在使用Facebook登錄按鈕在CallbackManager上調用onActivityResult()之後什麼也沒發生?
這裏的問題是點擊登錄按鈕後,它正常加載Facebook活動,當它完成時,我的活動接收活動結果並通知CallbackManager(全部如文檔中所述)。
不幸的是,從這一點來說沒有任何反應,沒有執行已註冊的FacebookCallback中的方法,甚至沒有記錄行來通知錯誤。
這裏是所涉及的文件:
public class LoginActivity extends Activity
CallbackManager callbackManager;
LoginButton loginFacebook;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(this);
setContentView(R.layout.activity_login);
...
callbackManager = CallbackManager.Factory.create();
loginFacebook = (LoginButton) findViewById(R.id.login_button);
loginFacebook.setReadPermissions("public_profile","email");
loginFacebook.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
...
(This is never executed)
}
@Override
public void onCancel() {
...
(Not executed)
}
@Override
public void onError(FacebookException e) {
...
(Not executed either)
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(resultCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
...
}
而且activity_login.xml包括這樣
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"/>
按鈕我還添加了Facebook活動以及APP ID在我的Android清單文件
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />
以及facebook應用程序中的android應用程序密鑰。
希望能找到解決方案,非常感謝。
是否有一個對話框詢問用戶的權限? – Ajeet
是的。當我要求更多的生日權限時,用戶將不得不接受他們。現在窗口顯示一個加載圖標,並在不久後自動消失。 – Frildoren
您可以調試onActivityResult並查看是否有任何內容? – inmyth