2013-08-30 30 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

我做了一个编辑,可以帮助你回答我的问题 –