场景4: 预约会议
描述
在使用华为云会议账号登录后,可以调用预约会议接口预约会议。除了填写预约会议所需的会议参数外,还可以添加与会者。
业务流程
使用SDK预约会议前,处理用户界面输入的预约会议信息,调用bookConf接口,然后处理回调hwmCallback和消息通知BizNotificationHandler的onConfListChanged。
- 接口调用
- 组装数据结构BookConfParam。
- 调用bookConf开始创建预约会议,第1步中的数据作为参数。
- 处理回调函数
处理回调函数hwmCallback。
- 处理消息通知
处理消息通知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)) { 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); |