2015-04-18 59 views
3

我一直在試圖弄清楚如何解決這個問題,但不成功。爲什麼在使用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應用程序密鑰。

希望能找到解決方案,非常感謝。

+0

是否有一個對話框詢問用戶的權限? – Ajeet

+0

是的。當我要求更多的生日權限時,用戶將不得不接受他們。現在窗口顯示一個加載圖標,並在不久後自動消失。 – Frildoren

+0

您可以調試onActivityResult並查看是否有任何內容? – inmyth

回答

2

好吧,我現在看到之間的manifest.xml文件添加此。這可能是錯誤的

callbackManager.onActivityResult(resultCode, resultCode, data); 

請參閱resultCode被輸入兩次。你想要做的是:

callbackManager.onActivityResult(requestCode, resultCode, data); 
+0

那真是尷尬......非常感謝你! – Frildoren

1

嘗試應用

<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" /><activity 
+0

對不起,我忘記顯示該清單文件的一部分。它就在那裏,就像那樣。我將編輯我的原始問題並添加它。 – Frildoren

相關問題