us.zoom.sdk

## Interface MeetingService

-     public interface MeetingService

  Zoom meeting service.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `USER_TYPE_API_USER` API user type
    `static int` | `USER_TYPE_SSO` Single-sign-on user type
    `static int` | `USER_TYPE_ZOOM` Work email user type

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addDialOutListener(DialOutStatusListener listener)` Register a listener for dial out status
    `void` | `addListener(MeetingServiceListener listener)` Register a listener for meeting event
    `boolean` | `cancelDialOut(boolean isCallMe)` Cancel to invite user by dial out
    `boolean` | `dialOutUser(java.lang.String number, java.lang.String userName, boolean isCallMe)` Invite user by dial out
    `java.lang.String` | `getCurrentMeetingUrl()` Get current meeting's URL
    `java.lang.String` | `getCurrentRtcMeetingID()` Get current meeting unique ID, the format is just like DVLObefSZizM0xQLhtrCQ==
    `long` | `getCurrentRtcMeetingNumber()` Get current meeting number, the format is just like 123456789
    `InviteRoomSystemHelper` | `getInviteRoomSystemHelper()` Get InviteRoomSystemHelper instance
    `int` | `getMeetingStatus()` Get current meeting status
    `boolean` | `isCurrentMeetingHost()` Check if current user is the host of current meeting or not
    `boolean` | `isCurrentMeetingLocked()` Check if current meeting is in locked status
    `boolean` | `isDialOutInProgress()` Check if current dial out is in progress
    `boolean` | `isDialoutSupported()` Check if current meeting support dial out or not
    `boolean` | `isInviteRoomSystemSupported()` Check if current meeting support inviting room system or not
    `int` | `joinMeeting(android.content.Context context, java.lang.String meetingNo, java.lang.String displayName)` Join a Zoom meeting with specified arguments
    `int` | `joinMeeting(android.content.Context context, java.lang.String meetingNo, java.lang.String displayName, MeetingOptions opts)` Join a Zoom meeting with specified arguments
    `int` | `joinMeeting(android.content.Context context, java.lang.String meetingNo, java.lang.String displayName, java.lang.String password)` Join a Zoom meeting with specified arguments
    `int` | `joinMeeting(android.content.Context context, java.lang.String meetingNo, java.lang.String displayName, java.lang.String password, MeetingOptions opts)` Join a Zoom meeting with specified arguments
    `void` | `leaveCurrentMeeting(boolean endIfPossible)` Leave current meeting
    `void` | `pauseCurrentMeeting()` Pause the current meeting, especially the microphone and speaker.
    `void` | `removeDialOutListener(DialOutStatusListener listener)` Unregister a dial out status listener
    `void` | `removeListener(MeetingServiceListener listener)` Unregister a meeting event listener
    `void` | `resumeCurrentMeeting()` Resume the current meeting.
    `void` | `returnToMeeting(android.content.Context context)` Bring meeting screen to foreground.
    `int` | `startInstantMeeting(android.content.Context context)` Start a Zoom meeting with specified arguments for login user.
    `int` | `startInstantMeeting(android.content.Context context, MeetingOptions opts)` Start a Zoom meeting with specified arguments for login user.
    `int` | `startInstantMeeting(android.content.Context context, java.lang.String userId, java.lang.String zoomToken, int userType, java.lang.String displayName)` Deprecated.
    `int` | `startInstantMeeting(android.content.Context context, java.lang.String userId, java.lang.String zoomToken, int userType, java.lang.String displayName, MeetingOptions opts)` Deprecated.
    `int` | `startMeeting(android.content.Context context, java.lang.String meetingNo)` Start a Zoom meeting with specified arguments
    `int` | `startMeeting(android.content.Context context, java.lang.String meetingNo, MeetingOptions opts)` Start a Zoom meeting with specified arguments
    `int` | `startMeeting(android.content.Context context, java.lang.String userId, java.lang.String zoomToken, int userType, java.lang.String meetingNo, java.lang.String displayName)` Start a Zoom meeting with specified arguments
    `int` | `startMeeting(android.content.Context context, java.lang.String userId, java.lang.String zoomToken, int userType, java.lang.String meetingNo, java.lang.String displayName, MeetingOptions opts)` Start a Zoom meeting with specified arguments
    `boolean` | `tryRetrieveMicrophone()` For try to retrieve microphone in meeting

- - ### Field Detail

    - #### USER_TYPE_API_USER

          static final int USER_TYPE_API_USER

      API user type
      See Also:
        Constant Field Values

    - #### USER_TYPE_ZOOM

          static final int USER_TYPE_ZOOM

      Work email user type
      See Also:
        Constant Field Values

    - #### USER_TYPE_SSO

          static final int USER_TYPE_SSO

      Single-sign-on user type
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### addListener

          void addListener(MeetingServiceListener listener)

      Register a listener for meeting event
      Parameters:
        `listener` - the listener instance

    - #### removeListener

          void removeListener(MeetingServiceListener listener)

      Unregister a meeting event listener
      Parameters:
        `listener` - the listener instance

    - #### addDialOutListener

          void addDialOutListener(DialOutStatusListener listener)

      Register a listener for dial out status
      Parameters:
        `listener` - the listener instance

    - #### removeDialOutListener

          void removeDialOutListener(DialOutStatusListener listener)

      Unregister a dial out status listener
      Parameters:
        `listener` - the listener instance

    - #### startMeeting

          int startMeeting(android.content.Context context,
                           java.lang.String meetingNo)

      Start a Zoom meeting with specified arguments
      Parameters:
        `context` - Android context
        `meetingNo` - The scheduled meeting number
      Returns:
        Contants defined in us.zoom.videomeetings.sdk.MeetingError

    - #### startMeeting

          int startMeeting(android.content.Context context,
                           java.lang.String meetingNo,
                           MeetingOptions opts)

      Start a Zoom meeting with specified arguments
      Parameters:
        `context` - Android context
        `meetingNo` - The scheduled meeting number
        `opts` - other options. It should be an instance of MeetingOptions or StartMeetingOptions. Can be null to use the default options.
      Returns:
        Contants defined in us.zoom.videomeetings.sdk.MeetingError

    - #### startMeeting

          int startMeeting(android.content.Context context,
                           java.lang.String userId,
                           java.lang.String zoomToken,
                           int userType,
                           java.lang.String meetingNo,
                           java.lang.String displayName)

      Start a Zoom meeting with specified arguments
      Parameters:
        `context` - Android context
        `userId` - Zoom user Id returned from REST API
        `zoomToken` - Zoom user token returned from REST API
        `userType` - user type defined in MeetingService
        `meetingNo` - The scheduled meeting number
        `displayName` - User's display name in the meeting
      Returns:
        Contants defined in us.zoom.videomeetings.sdk.MeetingError

    - #### startMeeting

          int startMeeting(android.content.Context context,
                           java.lang.String userId,
                           java.lang.String zoomToken,
                           int userType,
                           java.lang.String meetingNo,
                           java.lang.String displayName,
                           MeetingOptions opts)

      Start a Zoom meeting with specified arguments
      Parameters:
        `context` - Android context
        `userId` - Zoom user Id returned from REST API
        `zoomToken` - Zoom user token returned from REST API
        `userType` - user type defined in MeetingService
        `meetingNo` - The scheduled meeting number
        `displayName` - User's display name in the meeting
        `opts` - other options. It should be an instance of MeetingOptions or StartMeetingOptions. Can be null to use the default options.
      Returns:
        Contants defined in us.zoom.videomeetings.sdk.MeetingError

    - #### startInstantMeeting

          int startInstantMeeting(android.content.Context context)

      Start a Zoom meeting with specified arguments for login user.
      Parameters:
        `context` - Android context
      Returns:
        Contants defined in us.zoom.videomeetings.sdk.MeetingError

    - #### startInstantMeeting

          int startInstantMeeting(android.content.Context context,
                                  MeetingOptions opts)

      Start a Zoom meeting with specified arguments for login user.
      Parameters:
        `context` - Android context
        `opts` - other options. It should be an instance of MeetingOptions or InstantMeetingOptions. Can be null to use the default options.
      Returns:
        Contants defined in us.zoom.videomeetings.sdk.MeetingError

    - #### startInstantMeeting

          @Deprecated
          int startInstantMeeting(android.content.Context context,
                                               java.lang.String userId,
                                               java.lang.String zoomToken,
                                               int userType,
                                               java.lang.String displayName)

      Deprecated.
      Start a Zoom meeting with specified arguments.

      This method is not suggested to call. User app can schedule a meeting firstly using REST API then call `startMeeting` method with the meeting ID.

      Parameters:
        `context` - Android context
        `userId` - Zoom user Id returned from REST API
        `zoomToken` - Zoom user token returned from REST API
        `userType` - user type defined in MeetingService
        `displayName` - User's display name in the meeting
      Returns:
        Contants defined in us.zoom.videomeetings.sdk.MeetingError

    - #### startInstantMeeting

          @Deprecated
          int startInstantMeeting(android.content.Context context,
                                               java.lang.String userId,
                                               java.lang.String zoomToken,
                                               int userType,
                                               java.lang.String displayName,
                                               MeetingOptions opts)

      Deprecated.
      Start a Zoom meeting with specified arguments.

      This method is not suggested to call. User app can schedule a meeting firstly using REST API then call `startMeeting` method with the meeting ID.

      Parameters:
        `context` - Android context
        `userId` - Zoom user Id returned from REST API
        `zoomToken` - Zoom user token returned from REST API
        `userType` - user type defined in MeetingService
        `displayName` - User's display name in the meeting
        `opts` - other options. It should be an instance of MeetingOptions or InstantMeetingOptions. Can be null to use the default options.
      Returns:
        Contants defined in us.zoom.videomeetings.sdk.MeetingError

    - #### joinMeeting

          int joinMeeting(android.content.Context context,
                          java.lang.String meetingNo,
                          java.lang.String displayName)

      Join a Zoom meeting with specified arguments
      Parameters:
        `context` - Android context
        `meetingNo` - Number of the meeting to join
        `displayName` - User's display name in the meeting
      Returns:
        Contants defined in us.zoom.sdk.MeetingError

    - #### joinMeeting

          int joinMeeting(android.content.Context context,
                          java.lang.String meetingNo,
                          java.lang.String displayName,
                          java.lang.String password)

      Join a Zoom meeting with specified arguments
      Parameters:
        `context` - Android context
        `meetingNo` - Number of the meeting to join
        `displayName` - User's display name in the meeting
        `password` - Meeting password
      Returns:
        Contants defined in us.zoom.sdk.MeetingError

    - #### joinMeeting

          int joinMeeting(android.content.Context context,
                          java.lang.String meetingNo,
                          java.lang.String displayName,
                          MeetingOptions opts)

      Join a Zoom meeting with specified arguments
      Parameters:
        `context` - Android context
        `meetingNo` - Number of the meeting to join
        `displayName` - User's display name in the meeting
        `opts` - other options. It should be an instance of MeetingOptions or JoinMeetingOptions. Can be null to use the default options.
      Returns:
        Contants defined in us.zoom.sdk.MeetingError

    - #### joinMeeting

          int joinMeeting(android.content.Context context,
                          java.lang.String meetingNo,
                          java.lang.String displayName,
                          java.lang.String password,
                          MeetingOptions opts)

      Join a Zoom meeting with specified arguments
      Parameters:
        `context` - Android context
        `meetingNo` - Number of the meeting to join
        `displayName` - User's display name in the meeting
        `password` - Meeting password
        `opts` - other options. It should be an instance of MeetingOptions or JoinMeetingOptions. Can be null to use the default options.
      Returns:
        Contants defined in us.zoom.sdk.MeetingError

    - #### getMeetingStatus

          int getMeetingStatus()

      Get current meeting status
      Returns:
        value defined in MeetingStatus

    - #### leaveCurrentMeeting

          void leaveCurrentMeeting(boolean endIfPossible)

      Leave current meeting
      Parameters:
        `endIfPossible` - If it is true and current user is the meeting host. The meeting will be ended.

    - #### pauseCurrentMeeting

          void pauseCurrentMeeting()

      Pause the current meeting, especially the microphone and speaker.

    - #### resumeCurrentMeeting

          void resumeCurrentMeeting()

      Resume the current meeting. After you call `pauseCurrentMeeting`, you should call this method to resume the meeting.

    - #### returnToMeeting

          void returnToMeeting(android.content.Context context)

      Bring meeting screen to foreground.
      Parameters:
        `context` - Android context

    - #### getCurrentRtcMeetingID

          java.lang.String getCurrentRtcMeetingID()

      Get current meeting unique ID, the format is just like DVLObefSZizM0xQLhtrCQ==
      Returns:
        current meeting's ID

    - #### getCurrentRtcMeetingNumber

          long getCurrentRtcMeetingNumber()

      Get current meeting number, the format is just like 123456789
      Returns:
        current meeting's number

    - #### getCurrentMeetingUrl

          java.lang.String getCurrentMeetingUrl()

      Get current meeting's URL
      Returns:
        current meeting's URL

    - #### isCurrentMeetingLocked

          boolean isCurrentMeetingLocked()

      Check if current meeting is in locked status
      Returns:
        true if current meeting is in locked status

    - #### isCurrentMeetingHost

          boolean isCurrentMeetingHost()

      Check if current user is the host of current meeting or not
      Returns:
        true if current user is the host of current meeting

    - #### dialOutUser

          boolean dialOutUser(java.lang.String number,
                              java.lang.String userName,
                              boolean isCallMe)

      Invite user by dial out
      Parameters:
        `number` - Phone number to dial
        `userName` - Name for this user (useless if isCallMe is true)
        `isCallMe` - if the user to call out is myself
      Returns:
        success or not

    - #### cancelDialOut

          boolean cancelDialOut(boolean isCallMe)

      Cancel to invite user by dial out
      Parameters:
        `isCallMe` - if the user to dial out is myself
      Returns:
        success or not

    - #### isDialOutInProgress

          boolean isDialOutInProgress()

      Check if current dial out is in progress
      Returns:
        true if current dial out is in progress

    - #### isDialoutSupported

          boolean isDialoutSupported()

      Check if current meeting support dial out or not
      Returns:
        true if dial out is supported

    - #### isInviteRoomSystemSupported

          boolean isInviteRoomSystemSupported()

      Check if current meeting support inviting room system or not
      Returns:
        true if inviting Room System is supported

    - #### getInviteRoomSystemHelper

          InviteRoomSystemHelper getInviteRoomSystemHelper()

      Get InviteRoomSystemHelper instance
      Returns:
        The shared instance of InviteRoomSystemHelper.

    - #### tryRetrieveMicrophone

          boolean tryRetrieveMicrophone()

      For try to retrieve microphone in meeting
      Returns:
        true if api call success or not