Android Facebook句柄会话

Android Facebook句柄会话,android,facebook,session,button,login,Android,Facebook,Session,Button,Login,我正在尝试使用android版facebook sdk获取我的facebook帐户的用户名和用户ID,我正在使用以下代码片段: final Session session = Session.getActiveSession(); if (session != null && session.isOpened()) { // If the session is open, make an API call to get user data

我正在尝试使用android版facebook sdk获取我的facebook帐户的用户名和用户ID,我正在使用以下代码片段:

final Session session = Session.getActiveSession();
    if (session != null && session.isOpened()) {
        // If the session is open, make an API call to get user data
        // and define a new callback to handle the response
        Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
            @Override
            public void onCompleted(GraphUser user, Response response) {
                // If the response is successful
                if (session == Session.getActiveSession()) {
                    if (user != null) {
                        user_ID = user.getId();//user id
                        profileName = user.getName();//user's profile name
                        userNameView.setText(user.getName());
                    }   
                }   
            }   
        }); 
        Request.executeBatchAsync(request);
    } 
问题是会话为空,我应该如何处理会话管理?我的意思是激活会话的代码和停用会话的代码我想自己使用自己的退出和登录按钮来处理facebook会话,但找不到管理会话的代码


提前多谢

您的
Session.getActiveSession()
null
因为您没有正确初始化会话。 请看下面的代码:

public class MyActivity extends Activity {

private UiLifecycleHelper uiHelper;
    private Session.StatusCallback callback = new Session.StatusCallback() {
        @Override
        public void call(final Session session, final SessionState state, final Exception exception) {
        /** If your session status has changed you can dead with that using this callback. */
       }
    };

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
       // Your code goes here

       /* Initializing a valid session. */
       uiHelper = new UiLifecycleHelper(this, callback); //callback can be null
       uiHelper.onCreate(savedInstanceState);

       Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
    }

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      uiHelper.onActivityResult(requestCode, resultCode, data);}
    }

@Override
    protected void onPause() {
     super.onPause();
     uiHelper.onPause();
    }

@Override
    protected void onStop() {
     super.onStop();
     Session.getActiveSession().removeCallback(callback);
    }

    @Override
    public void onDestroy() {
    super.onDestroy();
     uiHelper.onDestroy();
    }
}

让我知道这是否对您有用。

所以我需要使用UiLifecycleHelper来处理facebook会话?@Darkink,是的!看看Facebook开源SDK,你会发现
UiLifecycleHelper
创建了一个新会话。而activityResult的方法是什么?@DarkLink,
onActivityResult
确保你在点击权限对话框时收到回调,例如。