2012-11-21 66 views
1

因爲小時我想弄清楚爲什麼我的Facebook連接不能正常工作。我總是不得不點擊它兩次..第一次點擊它時,我發現面板對話框正在打開,但它沒有調用任何形式的回調,所以我的登錄活動只是「恢復」。Android的Facebook的連接按鈕需要點擊兩次

public void onClick_fbIcon(View v) { 
    if(!buttonsEnabled) 
     return; 

    buttonsEnabled = false; 
    tryFacebookConnect(); 
} 

@SuppressWarnings("deprecation") 
private void tryFacebookConnect() { 
    Log.d("debug", "start fbc"); 
    doingFacebooklogin = true; 
    facebook.authorize(this, new DialogListener() { 
     public void onComplete(Bundle values) { 
      end(); 
      toast("Complete"); 
      Log.d("debug", "#0"); 
      // .. continue with main code 
     } 

     public void onFacebookError(FacebookError error) { 
      end(); 
      Log.d("debug", "#1");   
     } 

     public void onError(DialogError e) { 
      end(); 
      Log.d("debug", "#2"); 
     } 

     public void onCancel() { 
      end(); 
      Log.d("debug", "#3"); 
     } 

     private void end() { 
      Log.d("debug", "fbc complete"); 
      doingFacebooklogin = false; 
     } 
    }); 
} 

第一次單擊我只得到「開始FBC」但在此之後什麼都沒有,所以我想這沒有回調方法被調用。

我發現當facebook-connect第一次不工作時,「onResume被調用」。下一次onActivityResult被調用。

@SuppressWarnings("deprecation") 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Log.d("debug", "Main: onActivityResult"); 
    super.onActivityResult(requestCode, resultCode, data); 

    facebook.authorizeCallback(requestCode, resultCode, data); 
} 

我登錄活動是由是否需要登錄都被specifing我的主要活動啓動的意圖:

Intent intent = new Intent(this, Login.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
    startActivity(intent); 

有時候,我可以看到下面的錯誤:

11-22 10:23:39.684: D/Facebook-publish(7317): Can NOT get FbInjector instance! Probably because this method was called in ContentProvider's onCreate. 

回答

0

我不知道爲什麼,但問題顯然是Facebook的SDK的一部分。我發現如果我的設備上沒有安裝Facebook應用程序,則不會發生此問題。所以我改變我的代碼是這樣的:

facebook.authorize(a, new String[] { }, **Facebook.FORCE_DIALOG_AUTH**, new DialogListener() { 
... 
0

請看看這個教程。我只是遵循這一點,我使它完美的作品。

希望它能幫助你。

http://www.youtube.com/watch?v=xndi6s9Tn_U

+0

謝謝,但這並沒有改變我的任何東西。 –

+0

我剛剛編輯我的帖子。 –

相關問題