登录 —— Android

简介

在完成 SDK 的导入和初始化后,您可以选择是否要集成登录的流程。

  • 不集成登录流程,也可以直接集成会议等大部分功能,这样能更快速地完成开发工作。
  • 集成登录流程,可以在以上的功能基础上实现额外的功能(比如会议中邀请别人加入),也可以实现跟开发者的APP的账号体系对。

如果您选择集成登录流程,请仔细阅读下列的详细内容,来完成登录的流程。

基本交互

登录和登出都是异步的接口,在 Android中定义了回调接口 JCApi.JCStateListener ,用于 APP 界面(以下简称UI)接收登录结果和登出结果的回调。 具体实现如下:

1. UI 实现 JCApi.JCStateListener接口
public interface JCStateListener {
    //回调此方法时,根据不同 state 处理不同事件
    void JCStateChanged(int state, int stateCode);
}
2. UI 注册监听 (注意在UI销毁时取消注册监听)
//示例代码
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    JCApi.getInstance().registerJCStateListener(this);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    JCApi.getInstance().unregisterJCStateListener(this);
}

登录

先设置登录模式为指定的账号和密码登录,然后 UI 调用登录的接口,登录接口调用成功仅表明发起了登录的请求,只有当 UI 收到 JCApiState 为 STATE_LOGINED 的回调时,才表明登录成功。

1. 设置登录模式
//示例代码
JCApi.getInstance().setAccountMode(JCApiConstants.ACCOUNT_MODE_ANONYMOUS);//匿名登录
JCApi.getInstance().setAccountMode(JCApiConstants.ACCOUNT_MODE_ASSIGNATION);//正常登录
2. 调用登录接口
//示例代码
JCApi.getInstance().login("userId", "password");
3. 处理登录的回调
//示例代码
@Override
public void JCStateChanged(int state, int stateCode) {
    switch (state) {
            case STATE_LOGINED:
                //do anything you want when logined successfully.
                break;
            case STATE_LOGINFAILED:
                //do anything you want when logined fail.
                break;
            default:
                break;
        }
}

注:如果已经登录成功或者正在登录中,再重复调用登录接又是无效的。

登出

登出使终端从登录状态变为未登录,登出分两种情况:

  • 调用登出的接口主动登出。
  • 因同一个账号在另一台设备登录导致被登出(比如账号abc已经在设备A登录了,此时设备B登录了账号abc就会导致设备A的登录状态变为未登录)。
主动登出

UI 调用登出接口,调用接口成功仅表明发起了登出的请求,只有当 UI 收到 JCApiState 为 STATE_INIT 的回调时,才表明登出成功。
1.调用登出接口

//示例代码
JCApi.getInstance().logout();

2.回调

//示例代码
public void JCStateChanged(int state, int stateCode) {
    switch (state) {
            case STATE_INIT:
                //do anything you want when logouted successfully.
                break;
            default:
                break;
        }
}
被登出

当被登出时,UI 收到 state 为 STATE_LOGOUTED 的回调 。

//示例代码
public void JCStateChanged(int state, int stateCode) {
    switch (state) {
        case STATE_LOGOUTED:
            //do anything you want when you logouted by others.
                break;
            default:
                break;
        }
}

查询登录状态

//示例代码
boolean isOnline = JCApi.getInstance().isOnline();

此接口用于查询当前终端登录状态,isOnline 为 true,表示当前终端处于登录状态, isOnline 为 false,表示当前终端处于未登录状态。