在htc欲望上没有调用onComplete方法

时间:2011-07-21 11:01:48

标签: android facebook authorization

我正在Android上实现一个Facebook登录工具,它似乎可以在模拟器和Google Nexus设备上正常工作。但是,用户似乎在HTC Desire S上取消了授权,因此永远不会调用onComplete()。我发现的唯一区别是HTC有一个内置的Facebook应用程序。这是我正在使用的代码:

private void Login(){
    facebook.authorize(this,new String[] {"email"}, new Facebook.DialogListener() {
        @Override
        public void onComplete(Bundle values) {
            Log.d("Auth","onCompleteCalled");

        }

        @Override
        public void onFacebookError(FacebookError error) {}

        @Override
        public void onError(DialogError e) {}

        @Override
        public void onCancel() {
            Log.d("Auth","Cancelled");

        }
    });

错误消息来自Facebook SDK代码的这一部分:

} else if (resultCode == Activity.RESULT_CANCELED) {

            // An Android error occured.
            if (data != null) {
                Log.d("Facebook-authorize",
                        "Login failed: " + data.getStringExtra("error"));
                mAuthDialogListener.onError(
                        new DialogError(
                                data.getStringExtra("error"),
                                data.getIntExtra("error_code", -1),
                                data.getStringExtra("failing_url")));

            // User pressed the 'back' button.
            } else {
                Log.d("Facebook-authorize", "Login canceled by user."); //This is the error I get
                mAuthDialogListener.onCancel();
            }

1 个答案:

答案 0 :(得分:0)

请更新以下应用程序代码,它将解决您的问题。

public void loginAndPostToWall() {
    facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH,
            new LoginDialogListener());
}