
# 加入会议
```
HWMSdk.getOpenApi.joinConf(JoinConfParam，HwmCancelableCallBack）
```
**接口描述**
该接口可以在登录和未登录状态下加入会议。加入会议的方式有两种：
- 会议ID+会议密码入会：手动输入会议ID和会议密码密码。
- 会议ID+Random入会：通过邮件会议通知中的会议链接入会时（会议链接如：https://meeting.huaweicloud.com/#/j/981924330/e\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*9），链接里面的是会议ID（即举例中的981924330）和会议的Random码（即举例中的e\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*9）。
**注意事项**
- 在未登录状态下调用该接口时，会议昵称参数必选。
- ID入会参数使用子类**PasswordJoinConfParam** ，random入会参数使用子类**RandomJoinConfParam**
**方法定义**
```
/**
     * @param joinConfParam 加入会议参数实体
     * @param hwmCallback 加入会议结果回调
     */
     void joinConf(JoinConfParam joinConfParam, HwmCancelableCallBack<Void> hwmCallback);
```
**参数描述**
表1参数说明 
| 参数            | 是否必须 | 类型                    | 描述       |
|:---|:---|:---|:---|
| joinConfParam | 是    | JoinConfParam         | 加入会议参数实体 |
| hwmCallback   | 是    | HwmCancelableCallBack | 会议加入结果回调 |
   
**返回值**
无。
**参数拓展**
表2JoinConfParam参数说明 
| 参数          | 是否必须 | 类型      | 描述        |
|:---|:---|:---|:---|
| setConfId   | 是    | String  | 设置加入会议的ID |
| setNickname | 是    | String  | 设置昵称      |
| setCameraOn | 否    | boolean | 是否开启摄像头   |
| setMicOn    | 否    | boolean | 是否开启麦克风   |
   
表3PasswordJoinConfParam参数说明 
| 参数                 | 是否必须 | 类型      | 描述                  |
|:---|:---|:---|:---|
| password           | 否    | String  | 设置加入会议的密码，会议无密码时不填  |
| isStopConflictConf | 否    | boolean | 强制结束和当前VMR会议资源冲突的会议 |
   
 表4RandomJoinConfParam参数说明 
| 参数     | 是否必须 | 类型     | 描述                   |
|:---|:---|:---|:---|
| random | 是    | String | 设置加入会议的随机数，由会议密码映射生成 |
| domain | 否    | String | 域名，离线入会时使用。          |
   
**示例代码**
```
JoinConfParam joinConfParam;
if (!TextUtils.isEmpty(random)) {    
     joinConfParam = new RandomJoinConfParam()        
          .setRandom(random)        
          .setConfId(getConfId())        
          .setNickname(getNickname())        
          .setCameraOn(true)        
          .setMicOn(true);
} else {    
     joinConfParam = new PasswordJoinConfParam()        
          .setPassword(password)        
          .setConfId(getConfId())        
          .setNickname(getNickname())        
          .setCameraOn(true)        
          .setMicOn(true);
}
HWMSdk.getOpenApi(getActivity()).joinConf(joinConfParam, new HwmCancelableCallBack<Void>() {       
      
     //加入会议成功回调
     @Override             
     public void onSuccess(Void ret) {                 
         Log.i(TAG, "加入会议成功");             
     }       
       
     //加入会议失败回调
     @Override             
     public void onFailed(int retCode, String desc) {                 
         String err = ErrorMessageFactory.create(Utils.getApp(), retCode);                 
         if (TextUtils.isEmpty(err)) {                     
             err = Utils.getApp().getString(com.huawei.hwmmobileconfui.R.string.conf_join_fail_tip);                 
         }                 
         Log.e(TAG, "加入会议失败: " + err);             
     }    
    @Override
    public void onCancel() {
        
    }
});
```
