Facebook 会话取消对话框

3
我正在开发一个应用程序,使用以下内容:https://developers.facebook.com/docs/android/native-login/ 我已经按照Facebook开发者教程进行了操作,因此基本上我已经检查了会话,打开了对话框,并且正在尝试获取取消事件(当用户取消Facebook对话框时),但是我没有找到相应的方法。
也许你可以帮忙解决。
谢谢。
编辑:实际上,即使我点击取消按钮,我仍然正确地接收到GraphUser。这很奇怪。

让我们在这里交流:链接 - Vikram
2个回答

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);
    }
};

它运行得非常好


实际上,它没有起作用。我总是进入if(exception ...)中。从未进入else。 - Quentin DOMMERC
既然你总是进入if语句,让我们检查一下它是否为FacebookAuthorizationException而不是FacebookOperationCanceledException?有可能是因为您在FB应用程序设置中没有正确设置密钥哈希。 - Jarod Law Ding Yong
请仔细查看入门指南,了解第4步和第5步: https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/ - Jarod Law Ding Yong
好的,现在我弄对了,但是如果用户点击取消,我想结束调用Facebook对话框的活动。但是finish()没有起作用。 - Quentin DOMMERC
没有任何一个有效。甚至MyActivity.this.finish()也不行。我今天会研究一下。 - Quentin DOMMERC
显示剩余3条评论

0
在你的打开请求中添加一个 Session.StatusCallback,以便你可以检查 SessionState。
       new Session.StatusCallback() {

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

        };

请查看这个问题


他遇到的问题并不完全相同。我实际上在处理本地对话框上的“取消”按钮时遇到了问题。 - Quentin DOMMERC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接