Android 在执行facebook post功能时,某些代码行未被执行

Android 在执行facebook post功能时,某些代码行未被执行,android,facebook-android-sdk,Android,Facebook Android Sdk,伙计们,我想用facebook sdk在facebook上发布,但有些代码没有执行。是弹出一个登录对话框,当我登录时,SessionEvents.AuthListener侦听器应侦听登录成功。但这不是在听。每次启动应用程序时,它都要求登录。 下面是我的代码 public class FacebookConnector { private Facebook mFacebook; private AuthListener mSessionListener; private Context conte

伙计们,我想用facebook sdk在facebook上发布,但有些代码没有执行。是弹出一个登录对话框,当我登录时,
SessionEvents.AuthListener侦听器应侦听登录成功。但这不是在听。每次启动应用程序时,它都要求登录。
下面是我的代码

public class FacebookConnector {
private Facebook mFacebook;
private AuthListener mSessionListener;
private Context context;
private String[] permissions;
private Activity activity;

public FacebookConnector(String appId, Activity activity, Context context, String[] permissions) {

    this.mFacebook = new Facebook(appId);
    SessionStore.restore(mFacebook, context);
    SessionEvents.addAuthListener(mSessionListener);
    SessionEvents.addLogoutListener((LogoutListener) mSessionListener);
    this.context = context;
    this.permissions = permissions;
    this.activity = activity;

}

public void postMessageOnWall(String msg) {
    if (mFacebook.isSessionValid()) {
        Bundle parameters = new Bundle();
        parameters.putString("message", msg);
        try {
            String response = mFacebook.request("me/feed", parameters, "POST");
            System.out.println(response);
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        login();
    }
}

public void login() {
    if (!mFacebook.isSessionValid()) {
        mFacebook.authorize(this.activity, this.permissions, Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener());
    }
}

public Facebook getFacebook() {
    return mFacebook;
}
}
在我的活动课上

private void onFacebookBtnClicked() {
    if (facebookConnector.getFacebook().isSessionValid()) {
        postMessageInThread();
    } else {
        SessionEvents.AuthListener listener = new SessionEvents.AuthListener() {
            @Override
            public void onAuthSucceed() {
                postMessageInThread();
            }

            @Override
            public void onAuthFail(String error) {

            }
        };
        SessionEvents.addAuthListener(listener);
        facebookConnector.login();
    }
}
private void postMessageInThread() {
    Thread t = new Thread() {
        public void run() {
            try {
                facebookConnector.postMessageOnWall(mQuote.getQuoteText() + "\n" + mQuote.getAuthorName());
                mFacebookHandler.post(mUpdateFacebookNotification);
            } catch (Exception ex) {
                Log.e("Facebook", "Error sending msg", ex);
            }
        }
    };
    t.start();
}

final Runnable mUpdateFacebookNotification = new Runnable() {
    public void run() {
        Toast.makeText(getBaseContext(), "Facebook updated !", Toast.LENGTH_LONG).show();
    }
};

在未执行的
postMessageInThread
方法中,不知道为什么将此权限设置为public

private String[] PERMISSIONS = new String[]

    { "publish_stream", "read_stream", "offline_access" };

这将检查会话是否存在,如果存在,则它将直接更新,如果不存在,则请求用户允许在墙上更新。

嗨,朋友们,我得到了解决方案,解决了我的问题,所以现在发布答案。我只需要覆盖ActivityResult上的

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    mFacebook.authorizeCallback(requestCode, resultCode, data);
}

我刚刚添加了它,让我的应用程序正常运行。

甚至连LoginDialGlistener的方法都没有被调用。您使用的SDK版本是什么?我建议您转到3.0版本。