
# 场景4： 预约会议
#### 描述
在使用华为云会议账号登录后，可以调用预约会议接口预约会议。除了填写预约会议所需的会议参数外，还可以添加与会者。
#### 业务流程
使用SDK预约会议前，处理用户界面输入的预约会议信息，调用bookConf接口，然后处理回调hwmCallback和消息通知BizNotificationHandler的onConfListChanged。
1. **接口调用**
   
   1. 组装数据结构BookConfParam。
   
   2. 调用bookConf开始创建预约会议，第1步中的数据作为参数。
   
   
   
   
2. **处理回调函数**
   
   处理回调函数hwmCallback。
   
   
3. **处理消息通知**
   
   处理消息通知onConfListChanged。
   
   
 
#### 示例代码
```
// 预约会议结果回调    
            HwmCallback<ConfInfo> completeHandler = new HwmCallback<ConfInfo>() {
    @Override
    public void onSuccess(ConfInfo result) {
dismissLoading();
DemoUtil.showToast("预约会议成功");
    }
    @Override
    public void onFailed(int retCode, String desc) {
dismissLoading();
dismiss();
String err = ErrorMessageFactory.create(Utils.getApp(), retCode);
if (TextUtils.isEmpty(err)) {
    err = Utils.getApp().getString(R.string.hwmconf_book_conf_fail);
}
DemoUtil.showToast("预约会议失败: " + retCode + ", desc:" + err);
    }
        };
        boolean needWithMember = true;
        List<AttendeeModel> attendeeInfos = new ArrayList<>();
        if (needWithMember) {
            //以下三种方式可选
            String name = getName();
            String number = getNumber();
            String thirdAccountId = getThirdAccountId();
            if (!TextUtils.isEmpty(thirdAccountId)) {
                attendeeList.add(AttendeeModel.buildAttendeeByThirdUserId(thirdAccount, name));
            } else if (number.startsWith("+99")) {
                //sip 号码入会
                attendeeInfos.add(AttendeeModel.buildAttendeeBySipNumber(number, name));
            } else {
                //电话号码入会（手机和座机）
                attendeeInfos.add(AttendeeModel.buildAttendeeByPhone(number, name));
            }
        }
        BookConfParam bookConfParam = new BookConfParam()
                .setConfSubject(getConfSubject())
                .setStartTime(1599574798)
                .setTimeZone(56)
                .setDuration(60)
                .setConfType(MeetingType.CONF_VIDEO)
                .setVmrIdFlag(false)
                .setVmrId("")
                .setNeedConfPwd(true)
                .setJoinConfRestrictionType(JoinConfPermissionType.PERMIT_EVERYONE)
                .setRecordOn(true)
                .setMailOn(true)
                .setSmsOn(true)
                .setEmailCalenderOn(true)
                .setAttendees(attendeeInfos);
        HWMBizSdk.getBizOpenApi().bookConf(bookConfParam, this.completeHandler);
```
