@Override
    public void call(Session session, SessionState state, Exception exception) {
      Log.v("SessionStatusCallback", "call cbIndex:" + mCallbackIndex);
      Log.v("SessionStatusCallback", "state:" + state.toString());
      if (exception != null) Log.v("SessionStatusCallback", "exception:" + exception.toString());
      switch (mCallByMode) {
        case CallByLogin:
          if (session.isOpened()) {
            mCallByMode = CallByNull;
            // Date curDate = new Date();
            // Log.v(Tag,"getExpirationDate:"+(session.getExpirationDate().getTime()-curDate.getTime()));

            if (mCallbackIndex != -1)
              nativeCallback(
                  mCallbackIndex,
                  "{\"authResponse\":{\"accessToken\":\""
                      + session.getAccessToken()
                      + "\"},\"status\":\"connected\"}");
          } else if (state == SessionState.CLOSED_LOGIN_FAILED) {
            mCallByMode = CallByNull;
            if (mCallbackIndex != -1)
              nativeCallback(
                  mCallbackIndex, "{\"authResponse\":null,\"status\":\"not_authorized\"}");
          }
          break;
        case CallByLogout:
          if (session.isClosed()) {
            mCallByMode = CallByNull;
            if (mCallbackIndex != -1)
              nativeCallback(mCallbackIndex, "{\"authResponse\":{},\"status\":\"unknown\"}");
          }
          break;
        case CallByFBUI:
          {
            if (session.isOpened()) {
              mCallByMode = CallByNull;
              Message message = myHandler.obtainMessage(MyHandler.EXECUTE_WEBDIALOG, params);
              message.arg1 = mCallbackIndex;
              message.sendToTarget();
            } else if (state == SessionState.CLOSED_LOGIN_FAILED) {
              mCallByMode = CallByNull;
              if (mCallbackIndex != -1) nativeCallback(mCallbackIndex, "null");
            }
            break;
          }
        default:
          break;
      }
    }