2014-02-20 44 views
0

你好,我试图使用Facebook登录。没有Session.StatusCallback收到

我的问题是,我没有得到回电。

这里是我的代码:

private void onClickLogin() { 

     Session currentSession = Session.getActiveSession(); 
     if (currentSession == null || currentSession.getState().isClosed()) { 
      Session session = new Session.Builder(this).build(); 
      Session.setActiveSession(session); 
      currentSession = session; 
     } 

     // Ask for username and password 
     OpenRequest op = new Session.OpenRequest((Activity) this); 

     op.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO); 
     op.setCallback(null); 

     List<String> permissions = new ArrayList<String>(); 
     // permissions.add("publish_actions"); 
     permissions.add("user_photos"); 
     permissions.add("friends_photos"); 
     permissions.add("read_stream"); 
     permissions.add("read_insights"); 
     permissions.add("read_friendlists"); 
     permissions.add("email"); 
     permissions.add("publish_actions"); 

     op.setPermissions(permissions); 

     Session session = new Session.Builder(this).build(); 
     Session.setActiveSession(session); 
     session.openForPublish(op); 
    } 


@Override 
    protected void onActivityResult(int requestCode, int resultCode, 
      Intent data2) { 

     Session.getActiveSession().onActivityResult(RegisterPage.this, requestCode, resultCode, data2); 


    } 

rivate class SessionStatusCallback implements Session.StatusCallback { 

     @SuppressWarnings("deprecation") 
     @Override 
     public void call(final Session session, SessionState state, 
       Exception exception) { 

      Log.i("test", "test"); 
} 

}

回答

0

你需要注册你的回调。你应该这样做

private Session.StatusCallback statusCallback = new SessionStatusCallback();

.....

注册我的OnStart方法

Session.getActiveSession()的addCallback(statusCallback)回调。

和予删除它在的onStop方法

Session.getActiveSession()removeCallback(statusCallback)。

问候

迈克尔