更新时间:2024-07-30 GMT+08:00

场景4: 预约会议

描述

在使用华为云会议账号登录后,可以调用预约会议接口预约会议。除了填写预约会议所需的会议参数外,还可以添加与会者。

业务流程

使用SDK预约会议前,处理用户界面输入的预约会议信息,调用bookConf接口,然后处理回调hwmCallback和消息通知BizNotificationHandler的onConfListChanged。

  1. 接口调用

    1. 组装数据结构BookConfParam。
    2. 调用bookConf开始创建预约会议,第1步中的数据作为参数。

  2. 处理回调函数

    处理回调函数hwmCallback。

  3. 处理消息通知

    处理消息通知onConfListChanged。

示例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
            // 预约会议结果回调    
            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)) {
                attendeeInfos.add(AttendeeModel.buildAttendeeByThirdAccountId(thirdAccountId, 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);