Facebook会话取消对话框

时间:2013-08-30 17:48:27

标签: android facebook events dialog

我正在开发一个使用此功能的应用:https://developers.facebook.com/docs/android/native-login/

我已经关注了Facebook开发教程,所以基本上我有会话检查,它打开对话框,我正在尝试获取取消事件(当用户取消Facebook对话框时)但我没有这个方法

也许你可以提供帮助。

由于

编辑:实际上,即使我点击取消按钮,我仍然可以正确接收GraphUser。这很奇怪。

2 个答案:

答案 0 :(得分: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);
    }
};

效果很好

答案 1 :(得分:0)

将Session.StatusCallback添加到您打开的请求中,您可以在其中检查SessionState。

       new Session.StatusCallback() {

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

        };

查看this question