Below code snippets are followed in sequences:
Initialising SDK:
``ZoomSDK zoomSDK = ZoomSDK.getInstance();
ZoomSDKInitParams initParams = new ZoomSDKInitParams();
initParams.jwtToken = “”;
initParams.enableLog = true;
initParams.logSize = 50;
initParams.domain= “zoom.us”;
initParams.appKey = “";
initParams.appSecret = "”;
initParams.videoRawDataMemoryMode = ZoomSDKRawDataMemoryMode.ZoomSDKRawDataMemoryModeStack;
zoomSDK.initialize(this, mZoomSDKListener, initParams);
zoomSDK.addAuthenticationListener(mZoomSDKListener);``
Enable waiting room:
``PreMeetingService preMeetingService = ZoomSDK.getInstance().getPreMeetingService();
if (preMeetingService == null) {
Log.i(TAG, “preMeetingService is null.”);
return;
}
MeetingItem meetingItem = preMeetingService.getMeetingItemByUniqueId(Long.parseLong(MEETING_ID));
if (meetingItem == null) {
Log.i(TAG, “meetingItem is null.”);
return;
}
meetingItem.setMeetingTopic("***");
meetingItem.setEnableWaitingRoom(true);
meetingItem.setCanJoinBeforeHost(false);
InMeetingWaitingRoomController waitingRoomController = ZoomSDK.getInstance().getInMeetingService().getInMeetingWaitingRoomController();
if (waitingRoomController.isSupportWaitingRoomUponEntryFeature()) {
waitingRoomController.enableWaitingRoomOnEntry(true);
}``
Enabling customised UI:
ZoomSDK.getInstance().getMeetingSettingsHelper().setCustomizedMeetingUIEnabled(true);
Start meeting:
``if (ZoomSDK.getInstance().getMeetingSettingsHelper().isCustomizedMeetingUIEnabled()) {
QtNative.activity().runOnUiThread(new Runnable() {
@Override
public void run() {
Log.i(TAG, “startMeeting, runOnUiThread”);
MeetingService meetingService = ZoomSDK.getInstance().getMeetingService();
if (meetingService == null) {
Log.i(TAG, “startMeeting, meetingService is null”);
return;
}
StartMeetingOptions opts = new StartMeetingOptions();
opts.no_video=true;
if (ZoomSDK.getInstance().isLoggedIn()) {
StartMeetingParams4NormalUser params = new StartMeetingParams4NormalUser();
params.meetingNo = MEETING_ID;
int res = meetingService.startMeetingWithParams(QtNative.activity(), params, opts);
Log.i(TAG, "startMeeting, startMeetingWithParams with login res: " + res);
} else {
StartMeetingParamsWithoutLogin params = new StartMeetingParamsWithoutLogin();
APIUserInfo userInfo = getAPIUserInfo();
if (userInfo != null) {
params.userId = userInfo.userId;
params.userType = STYPE;
params.displayName = “***”;
params.zoomAccessToken = userInfo.userZoomAccessToken;
params.meetingNo = MEETING_ID;
int res = meetingService.startMeetingWithParams(QtNative.activity(), params, opts);
Log.i(TAG, "startMeeting, startMeetingWithParams without login res: " + res);
} else {
Log.i(TAG, “startMeeting, Invalid User Info”);
}
}
}
});``
When client joins:
``@Override
public void onWatingRoomUserJoin(long userId) {
String user_name = ZoomSDK.getInstance().getInMeetingService().getUserInfoById(userId).getUserName();
Log.i(TAG, "onWatingRoomUserJoin userId: " + userId + " user_name: " + user_name);
userJoinedWaitingRoom(String.valueOf(userId), user_name);
}``
After host allows to admit to meeting:
MobileRTCSDKError error = ZoomSDK.getInstance().getInMeetingService().getInMeetingWaitingRoomController().admitToMeeting(Long.parseLong(user_id));