我正在开发一个使用此功能的应用:https://developers.facebook.com/docs/android/native-login/
我已经关注了Facebook开发教程,所以基本上我有会话检查,它打开对话框,我正在尝试获取取消事件(当用户取消Facebook对话框时)但我没有这个方法
也许你可以提供帮助。
由于
编辑:实际上,即使我点击取消按钮,我仍然可以正确接收GraphUser。这很奇怪。
答案 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
}
};