2013-08-30 102 views
3

我深化發展,使用此應用程式:https://developers.facebook.com/docs/android/native-login/Facebook的會議取消對話框

我跟隨Facebook的開發教程,所以基本上我有會話確認,它打開的對話框中,我試圖讓取消事件(當用戶取消Facebook對話框時),但我沒有辦法。

也許你可以幫忙。

感謝

編輯:其實,即使我點擊取消按鈕,我仍然收到GraphUser正確。這很奇怪。

+0

講起這裏:[鏈接](http://chat.stackoverflow.com/rooms/36809/facebook-session-cancel-dialog)。 – Vikram

回答

13

藉助Android SDK 3.5,我通過異常取消的事件,如果狀態更改回調與FacebookOperationCanceledException或FacebookAuthorizationException的情況下,它的取消事件:

private void onSessionStateChange(Session session, SessionState state, Exception exception) { 
    if (exception instanceof FacebookOperationCanceledException || exception instanceof FacebookAuthorizationException) { 

     // Cancelled by user, show alert 
     new AlertDialog.Builder(this).setTitle(R.string.cancelled).setMessage(R.string.permission_not_granted).setPositiveButton(R.string.ok, null).show(); 

    } else { 

     Session session = Session.getActiveSession(); 
     if ((session != null && session.isOpened())) { 
      // Session ready 
     } 
    } 
} 

private Session.StatusCallback callback = new Session.StatusCallback() { 
    @Override 
    public void call(Session session, SessionState state, Exception exception) { 
     onSessionStateChange(session, state, exception); 
    } 
}; 

它的工作好了

+0

其實,不,它不工作。我總是進入if(例外...)。從來沒有在其他地方。 –

+0

由於您總是進入if,我們來檢查它是否是FacebookAuthorizationException但不是FacebookOperationCanceledException? 您可能沒有在您的FB應用程序設置中正確設置Key Hashes。 –

+0

正確地開始步驟4和5: https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/ –

0

將Session.StatusCallback添加到打開的請求中,您可以在其中檢查SessionState。

 new Session.StatusCallback() { 

      @Override 
      public void call(Session session, SessionState state, Exception exception) { 
         //check state 
      } 

     }; 

結賬this question

+0

他的問題並不完全相同。我實際上遇到了處理本地對話框上的「取消」按鈕的問題。 –

+0

我做了一個編輯,可以幫助你回答我的問題 –