"startMeetingWithParams" starts a meeting as a participant - need it to start a meeting as host

"startMeetingWithParams" starts a meeting as a participant - need it to start a meeting as host:
I’m trying to create a simple app with the react-native-zoom-us open source project which is claimed to be acting as a minimum bridge to the “zoom android sdk”. The zoom android sdk is being accessed in this bridge through importing “us.zoom.sdk.ZoomSDK”. The basic functionality provided by it includes startMeetingWithParams() function of the MeetingService of the android sdk. In the code (attached below), I can see that they are setting StartMeetingParamsWithoutLogin() with certain params and then passing it as an argument to startMeetingWithParams(). This is starting a meeting with user as a participant (even when host_id of the meeting is set in the parameter “userId”) and the default waiting room screen shows up waiting for the host to start the meeting, whereas it is expected to start the meeting as the host. Please give your inferences on this and let me know what needs to be done to solve this. And does something have to be done with the StartMeetingOptions? Also what is the userType parameter here? It is said to be ‘integer: 2’ for a pro user. However, I’m not sure what type of a zoom user I am. Kindly let me know how I can know about the userType.

  public void startMeeting(
    final String displayName,
    final String meetingNo,
    final String userId,
    final int userType,
    final String zoomAccessToken,
    final String zoomToken,
    Promise promise
  ) {
    try {
      meetingPromise = promise;

      ZoomSDK zoomSDK = ZoomSDK.getInstance();
      if(!zoomSDK.isInitialized()) {
        promise.reject("ERR_ZOOM_START", "ZoomSDK has not been initialized successfully");

      final MeetingService meetingService = zoomSDK.getMeetingService();
      if(meetingService.getMeetingStatus() != MeetingStatus.MEETING_STATUS_IDLE) {
        long lMeetingNo = 0;
        try {
          lMeetingNo = Long.parseLong(meetingNo);
        } catch (NumberFormatException e) {
          promise.reject("ERR_ZOOM_START", "Invalid meeting number: " + meetingNo);

        if(meetingService.getCurrentRtcMeetingNumber() == lMeetingNo) {
          promise.resolve("Already joined zoom meeting");

      StartMeetingOptions opts = new StartMeetingOptions();
      StartMeetingParamsWithoutLogin params = new StartMeetingParamsWithoutLogin();
      params.displayName = displayName;
      params.meetingNo = meetingNo;
      params.userId = userId;
      params.userType = userType;
      params.zoomAccessToken = zoomAccessToken;
      // params.zoomToken = zoomToken;

      int startMeetingResult = meetingService.startMeetingWithParams(reactContext.getCurrentActivity(), params, opts);
      Log.i(TAG, "startMeeting, startMeetingResult=" + startMeetingResult);

      if (startMeetingResult != MeetingError.MEETING_ERROR_SUCCESS) {
        promise.reject("ERR_ZOOM_START", "startMeeting, errorCode=" + startMeetingResult);
    } catch (Exception ex) {
      promise.reject("ERR_UNEXPECTED_EXCEPTION", ex);

Hi @170010016, thanks for the post.

Unfortunately the project you’ve linked is not owned by Zoom so we are unable to assist with your usage of it. If you need any help with implementing our SDK on one of the platforms mentioned in our docs, we will be more than happy to assist.


Thanks for your reply @jon.zoom
I have found the fix for that. Thanks for trying to help.
However, I need help with a more specific functionality of the zoom android sdk and am seeking for your help. I need to know how to integrate record meeting option into my app. For this to happen, I learnt that in case of zoom web sdk, I need to initialize the sdk with meeting recording option enabled. I suppose it is something similar for the zoom android sdk as well. Can you please suggest how exactly should I go about doing that?
Please note that I am still using the same “react-native-zoom-us” bridge to communicate with the zoom android sdk. And they import zoom us android sdk’s functions in this manner:


And they are using the zoom us android sdk’s functions itself. They only make it possible for the react community to use your sdk. Please let me know if you can help me with this. Good day!

Hi @170010016, thanks for clarifying.

Through the native Android SDK, you may start a recording (if it is enabled as you mentioned) through InMeetingCloudRecordController#startCloudRecord. You can obtain an instance of that controller via ZoomSDK.getInstance().getInMeetingService().getInMeetingCloudRecordController();.

You may also want to check that recording is enabled through InMeetingCloudRecordController.isCloudRecordEnabled.


Thanks for the reply @jon.zoom
Can you please confirm that the record meeting (cloud or local) is only available for paid accounts. And that that is what you mean by “if it is enabled”. Or is there a way I can enable it for basic account type as well?

Hi @170010016,

Since your most recent questions are not specific to the mobile SDK, I would recommend going through our support page here to ensure you are getting the most accurate and up-to-date information. Someone will be more than happy to answer any general account or meeting-related questions you have over there. :slightly_smiling_face:


Thanks @jon.zoom,
Will definitely ask there too.
I am in fact talking about the Zoom US Android SDK.

Hi @170010016,

I understand that you are using the Android SDK, but this behavior is not defined within the scope of the SDK. That support site will definitely be able to provide better assistance for anything not specific to the Android SDK. If you have any additional questions regarding your implementation after getting info from the support site, I will be happy to help!