Changelog: Zoom Rooms Controller - Android - 7.0.0

Released: 2026-03-30 Updated: 2026-03-30

Visit Changelog

Summary: This initial Android ZRCSDK release introduces the first public SDK surface for Zoom Rooms, including SDK initialization, room pairing, pre-meeting workflows, meeting lifecycle, audio/video/sharing controls, participant management, recording, reminders, and room settings.

Added

  • Added new Android SDK initialization, room discovery, pairing, and shared error handling interfaces in files ZRCSDK.java, ZRCSDKError.java, ZRCSDKSink.java, ZoomRoomsService.java, ZoomRoomsServiceSink.java.

    • Added class ZRCSDK in file ZRCSDK.java to expose Android SDK initialization, configuration, room enumeration, and room-service lifecycle APIs.

      public static synchronized ZRCSDK getInstance()
      public static void setLogEnabled(boolean enabled)
      public static boolean isLogEnabled()
      public static synchronized int destroyInstance()
      public static Context getGlobalContext()
      public void loadNativeModules()
      public boolean init(Context context, ZRCSDKSink sink)
      public String getVersion()
      public String getDisplayVersion()
      public String getExpireDate()
      public void forceFlushLog()
      public int initWebDomain(String domain)
      public int setProxyInfo(ProxyInfo proxyInfo)
      public int userInputUsernamePasswordForProxy(String host, int port, String userName, String password, boolean cancel)
      public List<ZoomRoomInfo> queryAllZoomRoomsServices()
      public boolean isInitialized()
      public ZoomRoomsService createZoomRoomsService(String roomID)
      public int destroyZoomRoomsService(ZoomRoomsService service)
      public void cleanup()
      
    • Added class ZRCSDKError in file ZRCSDKError.java to expose shared Android SDK error helpers and error-code categories.

      public static String getErrorMessage(int errorCode)
      
    • Added callback class ZRCSDKSink in file ZRCSDKSink.java to let the host app provide device metadata, app metadata, and proxy credentials.

      public String onGetDeviceManufacturer()
      public String onGetDeviceModel()
      public String onGetDeviceSerialNumber()
      public String onGetFirmwareVersion()
      public String onGetDeviceMacAddress()
      public String onGetDeviceIP()
      public String onGetAppName()
      public String onGetAppVersion()
      public String onGetAppDeveloper()
      public String onGetAppContact()
      public String onGetAppContentDirPath()
      public boolean onPromptToInputUserNamePasswordForProxyServer(String proxyHost, int port, String description)
      
    • Added class ZoomRoomsService in file ZoomRoomsService.java to expose room pairing state and access to meeting, pre-meeting, and setting services.

      public boolean isValid()
      public long getNativePtr()
      public MeetingService getMeetingService()
      public PreMeetingService getPreMeetingService()
      public SettingService getSettingService()
      public int registerSink(ZoomRoomsServiceSink sink)
      public int deregisterSink()
      public int pairRoomWithActivationCode(String activationCode)
      public int unpairRoom()
      public int retryToPairRoom()
      public boolean canRetryToPairLastRoom()
      public ZoomRoomInfo getLastZoomRoomInfo()
      public void cleanup()
      public void finalizeDestroy()
      public boolean triggerTestCallbacks()
      
    • Added callback class ZoomRoomsServiceSink in file ZoomRoomsServiceSink.java to receive room pairing and unpair notifications.

      public void onPairRoomResult(int result)
      public void onRoomUnpairedReason(int reason)
      
  • Added new pre-meeting room administration, contact discovery, and meeting list interfaces in files ContactHelper.java, ContactHelperSink.java, MeetingListHelper.java, MeetingListHelperSink.java, PreMeetingService.java, PreMeetingServiceSink.java.

    • Added class ContactHelper in file ContactHelper.java to expose contact subscription, lookup, and legacy room discovery APIs.

      public boolean isValid()
      public int registerSink(ContactHelperSink sink)
      public int deregisterSink()
      public int subscribeByContactID(List<String> contactIDs, boolean isSearchSipContact)
      public int subscribe(int startIndex, int count, boolean isSearchSipContact)
      public int requestContactsDetail(List<String> contactIDs)
      public int requestContactsDynamically(int startIndex, int count, boolean isSearchSipContact, long buddyTypeBits)
      public int searchContactsDynamically(int startIndex, int count, boolean isSearchSipContact, String searchFilter, long buddyTypeBits)
      public int getLegacyRoomList(List<LegacyRoomSystem> roomList, boolean isSelfRooms)
      public boolean triggerTestCallbacks()
      
    • Added callback class ContactHelperSink in file ContactHelperSink.java to receive contact, favorites, and legacy room list updates.

      public void onImUpdateContactNotification(List<Contact> contacts)
      public void onDynamicContactBasicInfoNotification(List<ContactTypeInfo> typeInfos, int numberOfContacts, int numberOfZoomRooms)
      public void onDynamicContactListNotification(DynamicContactListInfo info)
      public void onUpdateFavoritesList(FavoritesList list)
      public void onStartReceivingLegacyRoomList(boolean isSelfRooms)
      public void onAddLegacyRooms(List<LegacyRoomSystem> roomList, boolean isSelfRooms)
      public void onFinishReceivingLegacyRoomList(boolean isSelfRooms)
      
    • Added class MeetingListHelper in file MeetingListHelper.java to expose room meeting list, scheduling, check-in, and meeting-alert APIs.

      public boolean isValid()
      public int registerSink(MeetingListHelperSink sink)
      public int deregisterSink()
      public int listMeeting()
      public int scheduleCalendarEvent(ScheduleCalendarEventParam scheduleParam)
      public int deleteCalendarEvent(MeetingItem meetingItem)
      public int checkInCalendarEvent(MeetingItem meetingItem)
      public int checkOutCalendarEvent(MeetingItem meetingItem)
      public int showUpcomingMeetingAlert(MeetingItem meetingItem)
      public int closeUpcomingMeetingAlert()
      public int closeAutoReleaseMeetingAlert()
      public boolean triggerTestCallbacks()
      
    • Added callback class MeetingListHelperSink in file MeetingListHelperSink.java to receive room meeting list and upcoming-meeting notifications.

      public void onUpdateMeetingList(int result, List<MeetingItem> meetingList)
      public void onUpdatedScheduleCalendarEventNotification(int scheduleResult)
      public void onUpdatedDeleteCalendarEventNotification(int deleteResult)
      public void onShowUpcomingMeetingAlertResult(int result, MeetingItem meetingItem)
      public void onCloseUpcomingMeetingAlertResult(int result)
      public void onMeetingWillReleaseAutomatically(MeetingItem meetingItem)
      
    • Added class PreMeetingService in file PreMeetingService.java to expose room connection, problem report, OS, and wake-up APIs.

      public boolean isValid()
      public int registerSink(PreMeetingServiceSink sink)
      public int deregisterSink()
      public int getConnectionState()
      public int notifyZoomRoomsSendProblemReport(String subject, String body, int logType)
      public boolean isZoomRoomSupportRestartOS()
      public int restartZoomRoomOS()
      public int logoutZoomRoomDevice()
      public int wakeZoomRoomUp()
      public ContactHelper getContactHelper()
      public void cleanup()
      public void destroy()
      public boolean triggerTestCallbacks()
      
    • Added callback class PreMeetingServiceSink in file PreMeetingServiceSink.java to receive pre-meeting connection and shutdown notifications.

      public void onZRConnectionStateChanged(int connectionState)
      public void onShutdownOSNot(boolean restartOS)
      
  • Added new meeting lifecycle, invitation, and meeting-state interfaces in files MeetingService.java, MeetingServiceSink.java.

    • Added class MeetingService in file MeetingService.java to expose Android meeting start, join, invite, password, and in-meeting lifecycle APIs.

      public boolean isValid()
      public boolean registerSink(MeetingServiceSink sink)
      public boolean unregisterSink()
      public MeetingAudioHelper getMeetingAudioHelper()
      public MeetingVideoHelper getMeetingVideoHelper()
      public CameraControlHelper getCameraControlHelper()
      public MeetingReminderHelper getMeetingReminderHelper()
      public MeetingListHelper getMeetingListHelper()
      public MeetingViewLayoutHelper getMeetingViewLayoutHelper()
      public RecordingHelper getRecordingHelper()
      public MeetingShareHelper getMeetingShareHelper()
      public ParticipantHelper getParticipantHelper()
      public int startInstantMeeting()
      public int exitMeeting(int exitCmd)
      public int getMeetingStatus()
      public MeetingInfo getMeetingInfo()
      public int meetWithIMUsers(List<String> contactIDs)
      public int startMeeting(MeetingItem meeting, boolean bringShareToMeeting)
      public int startMeetingWithHostKey(String hostKey)
      public int joinMeetingWithMeetingNumber(String meetingNumber, boolean bringShareToMeeting)
      public int joinMeetingWithURL(String url)
      public int joinMeetingWithContactID(String contactID)
      public int joinMeetingWithPersonalLinkName(String personalLinkName, boolean bringShareToMeeting)
      public int joinMeetingWithPersonalLink(String personalLink)
      public int setRoomTempDisplayNameForMeeting(String roomTempName)
      public int sendMeetingPassword(String password)
      public int cancelEnteringMeetingPassword()
      public int cancelWaitingForHost()
      public int answerMeetingInvite(MeetingInvitationInfo invite, boolean accept)
      public int inviteAttendees(List<String> contactIDs)
      public int inviteLegacyRoomSystems(List<LegacyRoomSystem> roomSystems)
      public int inviteLegacyRoomSystemWithIpOrE164Number(String ipOrE164Number, int protocolType, boolean cancel)
      public int sendMeetingInviteEmail(String recipients)
      public int requestE2ESecurityCode()
      public int sendDTMF(String digitKey, int userID)
      public int extendMeeting()
      public int cancelConfirmPersonalLink()
      public boolean triggerTestCallbacks()
      public void cleanup()
      
    • Added callback class MeetingServiceSink in file MeetingServiceSink.java to receive meeting status, invitation, password, error, and security notifications.

      public void onStartMeetingResult(int result)
      public void onStartPmiResult(int result, String meetingNumber, int meetingType)
      public void onStartPmiNotification(boolean success)
      public void onUpdateMeetingStatus(int meetingStatus)
      public void onConfReadyNotification()
      public void onUpdateMeetingInfoNotification(MeetingInfo meetingInfo)
      public void onExitMeetingNotification(int result, int reason)
      public void onMeetingErrorNotification(MeetingErrorInfo errorInfo)
      public void onMeetingEndedNotification(MeetingErrorInfo errorInfo)
      public void onReceiveMeetingInviteNotification(MeetingInvitationInfo invitation)
      public void onAnswerMeetingInviteResponse(int result, MeetingInvitationInfo invitation, boolean accepted)
      public void onTreatedMeetingInviteNotification(MeetingInvitationInfo invitation, boolean accepted)
      public void onStartMeetingWithHostKeyResult(int result)
      public void onUpdateDataCenterRegionNotification(DataCenterRegion dcRegion)
      public void onUpdateE2ESecurityCode(E2ESecurityCode code)
      public void onBandwidthLimitNotification(BandwidthLimitInfo info)
      public void onSendMeetingInviteEmailNotification(int result)
      public void onSetRoomTempDisplayNameNotification(boolean isShow)
      public void onMeetingNeedsPasswordNotification(boolean showPasswordDialog, boolean wrongAndRetry, ConfDeviceLockStatus lockStatus)
      public void onConfDeviceLockStatusNotification(ConfDeviceLockStatus status)
      public void onJBHWaitingHostNotification(boolean showWaitForHostDialog, int reason)
      public void onE2eeMeetingStatusNotification(E2eeMeetingStatus e2eeMeetingStatus)
      public void onMeshInfoNotification(MeshInfoNotification meshInfo)
      public void onMeetingWillStopAutomatically()
      public void onExtendMeetingResult(int extendMins)
      public void onConfirmPersonalLink(String personalLink)
      
  • Added new audio control and far-end audio control interfaces in files MeetingAudioHelper.java, MeetingAudioHelperSink.java.

    • Added class MeetingAudioHelper in file MeetingAudioHelper.java to expose host audio control, attendee audio permissions, and far-end audio control APIs.

      public boolean isValid()
      public int registerSink(MeetingAudioHelperSink sink)
      public int deregisterSink()
      public int updateMyAudioStatus(boolean mute)
      public int muteUserAudio(int userID, boolean mute)
      public int muteAllAudios(boolean mute)
      public int muteOnEntry(boolean mute)
      public int answerUnmuteAudioByHostRequest(boolean accepted)
      public int allowAttendeesUnmuteThemselves(boolean allow)
      public int enablePlayJoinOrLeaveChime(boolean enable)
      public boolean isMeetingAudioTroubleShootingAvailable()
      public int enableMeetingAudioTroubleShooting(boolean enable)
      public int requestFarEndAudioControl(int farEndUserID)
      public int giveUpFarEndAudioControl(int farEndUserID)
      public int beginControlFarEndAudio(int farEndUserID)
      public int endControlFarEndAudio(int farEndUserID)
      public int selectFarEndAudioMicrophone(int farEndUserID, String deviceID)
      public int selectFarEndAudioSpeaker(int farEndUserID, String deviceID)
      public int adjustFarEndAudioSelectedMicrophoneVolume(int farEndUserID, int volume)
      public int adjustFarEndAudioSelectedSpeakerVolume(int farEndUserID, int volume)
      public int muteFarEndAudioMicrophone(int farEndUserID, boolean mute)
      public int approveFarEndAudioControlRequest(int requesterUserID)
      public int declineFarEndAudioControlRequest(int requesterUserID)
      public FarEndAudioControllingUserDeviceInfo getFarEndAudioControllingUserDeviceInfo(int userID)
      public List<FarEndAudioControllingUserDeviceInfo> getAllFarEndAudioControllingUserDeviceInfo()
      public void cleanup()
      public boolean triggerTestCallbacks()
      
    • Added callback class MeetingAudioHelperSink in file MeetingAudioHelperSink.java to receive meeting audio state and far-end audio notifications.

      public void onUpdateMyAudioStatus(AudioStatus audioStatus)
      public void onMuteUserAudioNotification(int userID, AudioStatus audioStatus)
      public void onMuteOnEntryNotification(boolean isMuteOnEntry)
      public void onAskUnmuteAudioByHostNotification(boolean show, AskUnmuteAudioByHostType type)
      public void onAllowAttendeesUnmuteThemselvesNotification(boolean canAttendeesUnmuteThemselves)
      public void onEnablePlayJoinOrLeaveChimeNotification(boolean enable)
      public void onUpdateAudioTroubleShootingStatus(AudioTroubleShootingStatus status)
      public void onFEACApproveNotification(int farEndUserID, String farEndUserName)
      public void onFEACDeclineNotification(int farEndUserID, String farEndUserName)
      public void onFEACTakeOverNotification(int farEndUserID, String farEndUserName, int controllingUserID, String controllingUserName)
      public void onFEACMicListChangedNotification(int farEndUserID, List<FarEndAudioDeviceInfo> micList)
      public void onFEACSpeakerListChangedNotification(int farEndUserID, List<FarEndAudioDeviceInfo> speakerList)
      public void onFEACMuteStateChangedNotification(int farEndUserID, boolean muteState)
      public void onFEACUnmuteDisabledByHostNotification(int farEndUserID)
      public void onFEACRequestNotification(int requesterUserID, String requesterUserName)
      public void onFEACGiveUpNotification(int requesterUserID, String requesterUserName)
      public void onFEACApproveControlRequestNotification(int requesterUserID)
      public void onFEACDeclineControlRequestNotification(int requesterUserID)
      
  • Added new video control and layout management interfaces in files MeetingViewLayoutHelper.java, MeetingViewLayoutHelperSink.java, MeetingVideoHelper.java, MeetingVideoHelperSink.java.

    • Added class MeetingViewLayoutHelper in file MeetingViewLayoutHelper.java to expose layout, gallery, attendee view, and thumbnail placement APIs.

      public boolean isValid()
      public int registerSink(MeetingViewLayoutHelperSink sink)
      public int deregisterSink()
      public int updateVideoLayoutStyle(int style)
      public int controlVideoPosition(int position, int size)
      public int turnVideoPage(boolean forward, int pageVideoType)
      public int switchToFloatingShareForSingleScreen(boolean floatingShare)
      public boolean isSupportShowNonVideoParticipants()
      public int showNonVideoParticipants(boolean show)
      public int enableShowUpTo49PerPageInGallery(boolean enable)
      public int enableAutoSwitchSpeaker(boolean enable)
      public int selectVideoOrder(int type)
      public int setDynamicLayoutOption(int layout)
      public int setConfidenceMonitorLayout(int layout)
      public int changeAttendeeView(int layout)
      public int selectGalleryGrid(int row, int column)
      public int expandConfSelfVideo(boolean expand)
      public int setScreenLayout(int screenIndex, int layout)
      public int setShareContentOnly(boolean enable)
      public int showScreenIndex(boolean show)
      public int getThumbnailsPosition()
      public int changeThumbnailsPosition(int type)
      public int showMyAutoGeneratedVideoStreams(boolean show)
      public boolean triggerTestCallbacks()
      
    • Added callback class MeetingViewLayoutHelperSink in file MeetingViewLayoutHelperSink.java to receive layout, page, and screen arrangement notifications.

      public void onUpdateWallviewStyleNotification(WallViewStyleStatus status)
      public void onUpdateVideoThumbInfo(VideoThumbInfo info)
      public void onUpdateVideoPageStatusNotification(VideoPageStatus noti)
      public void onUpdateIsNonVideoParticipantsShowedNotification(boolean isShowNonVideoParticipants)
      public void onUpdateShowUpTo49PerPageInGallery(boolean enabled)
      public void onAutoSwitchSpeakerNotification(boolean support, boolean enable)
      public void onVideoOrderNotification(VideoOrderInfo videoOrderInfo)
      public void onDynamicLayoutOptionNotification(int layout)
      public void onConfidenceMonitorNotification(ConfidenceMonitorInfo info)
      public void onChangeAttendeeViewNotification(int layout)
      public void onAttendeeViewLayoutEnableShareContentOnlyNotification(boolean isSupport, boolean isEnable)
      public void onUpdateGalleryGridSelectionNotification(boolean isEnabled, int row, int column)
      public void onUpdateScreenLayoutStatus(ScreenLayoutStatus status)
      public void onThumbnailsPositionNotification(int type)
      
    • Added class MeetingVideoHelper in file MeetingVideoHelper.java to expose self video, attendee video permissions, pin, spotlight, and preview APIs.

      public boolean isValid()
      public int registerSink(MeetingVideoHelperSink sink)
      public int deregisterSink()
      public int updateMyVideo(boolean stop)
      public int muteUserVideo(int userID, boolean mute)
      public int answerHostRequestUnmuteVideo(boolean accepted)
      public int allowAttendeesStartVideo(boolean allow)
      public int showPinUserInstruction(boolean show)
      public int allowUserMultiPin(int userID, boolean allow)
      public int pinUserOnScreen(int userID, int screenIndex)
      public int addPinUserOnScreen(int userID, int screenIndex)
      public int unpinUserFromScreen(int userID, int screenIndex)
      public int unpinUserFromAllScreens(int userID)
      public int pinSmartNameTagStreamOnScreen(int streamUserID, int screenIndex)
      public int addPinSmartNameTagStreamOnScreen(int streamUserID, int screenIndex)
      public int unpinSmartNameTagStreamFromScreen(int streamUserID, int screenIndex)
      public int unpinSmartNameTagStreamFromAllScreens(int streamUserID)
      public int removeAllPinUsers()
      public int spotlightUser(int userID)
      public int addSpotlightUser(int userID)
      public int cancelSpotlightUser(int userID)
      public int removeAllSpotlightUsers()
      public boolean isSupportSetMyVideoHidden()
      public int setMyVideoHidden(boolean hidden)
      public int setMyVideoTouchUp(MyVideoTouchUpSettings settings)
      public int setMyVideoLowLight(MyVideoLowLightSettings settings)
      public int fetchMyMeetingVideoSettings(MeetingItem meetingItem)
      public int setMyMeetingVideoTouchUp(MeetingItem meetingItem, MyVideoTouchUpSettings settings)
      public int setMyMeetingVideoLowLight(MeetingItem meetingItem, MyVideoLowLightSettings settings)
      public int showVideoPreview(boolean show, int type)
      public int showVideoPreview(boolean show, int type, MeetingItem meeting)
      public void cleanup()
      public boolean triggerTestCallbacks()
      
    • Added callback class MeetingVideoHelperSink in file MeetingVideoHelperSink.java to receive meeting video, pin, spotlight, and self-video-setting notifications.

      public void onUpdateMyVideoNotification(VideoStatus videoStatus)
      public void onMuteUserVideoNotification(int userID, VideoStatus videoStatus)
      public void onAskStartVideoByHostNotification(int userID)
      public void onUpdateScreenStatusForPinNotification(List<ScreenStatusForPin> pinStatusList, int warningType)
      public void onSpotlightStatusNotification(SpotlightStatus spotlightStatus)
      public void onUpdateAllowAttendeesStartVideo(boolean allow)
      public void onMyVideoSettingsNotification(MyVideoSettings settings)
      public void onMyMeetingVideoSettingsNotification(MyMeetingVideoSettings settings)
      
  • Added new sharing and camera control interfaces in files CameraControlHelper.java, CameraControlHelperSink.java, MeetingShareHelper.java, MeetingShareHelperSink.java.

    • Added class CameraControlHelper in file CameraControlHelper.java to expose local camera, remote camera, smart camera, preset, and multi-camera control APIs.

      public boolean isValid()
      public int registerSink(CameraControlHelperSink sink)
      public int deregisterSink()
      public int enableCompanionZRCamera(boolean enable, boolean isManuallySet, String companionZRID)
      public int controlLocalCamera(String deviceID, int action, int type)
      public int controlLocalCamera(String deviceID, int action, int type, String companionZRID)
      public int controlShareCamera(String deviceID, int action, int type)
      public int controlUserCamera(int userID, int action, int type)
      public int respondRemoteCameraControlFromUser(int userID, boolean accept)
      public int updateLocalCameraPanTilt(int speedPercentage, String deviceID)
      public int updateLocalCameraPanTilt(int speedPercentage, String deviceID, String companionZRID)
      public int updateShareCameraPanTilt(int speedPercentage, String deviceID)
      public int mirrorLocalVideo(boolean mirrored, String deviceID)
      public int mirrorLocalVideo(boolean mirrored, String deviceID, String companionZRID)
      public int mirrorShareVideo(boolean mirrored, String deviceID)
      public int changeSmartCameraMode(int mode, String deviceID)
      public int changeSmartCameraMode(int mode, String deviceID, String companionZRID)
      public int getCameraIntelligentStatus()
      public int getCameraIntelligentStatus(String companionZRID)
      public boolean canEnableCameraBoundaryInCurrentSmartCameraMode()
      public int enableCameraBoundaryInCurrentSmartCameraMode(boolean isEnable)
      public int setCameraPreset(int index, String deviceID)
      public int setCameraPreset(int index, String deviceID, String companionZRID)
      public int goToCameraPreset(int index, String deviceID)
      public int goToCameraPreset(int index, String deviceID, String companionZRID)
      public int nameCameraPreset(int index, String name, String deviceID)
      public int nameCameraPreset(int index, String name, String deviceID, String companionZRID)
      public int setCameraDefaultPosition(int index, String deviceID)
      public int setCameraDefaultPosition(int index, String deviceID, String companionZRID)
      public int cancelCameraDefaultPosition(int index, String deviceID)
      public int cancelCameraDefaultPosition(int index, String deviceID, String companionZRID)
      public int enableSpeakerSwitching(boolean enable)
      public int switchCamera()
      public int switchToCamera(Device camera)
      public int switchUserCamera(int userID)
      public int openMultipleCamera(String deviceID, boolean open)
      public int openMultipleCamera(String deviceID, boolean open, String companionZRID)
      public void cleanup()
      public boolean triggerTestCallbacks()
      
    • Added callback class CameraControlHelperSink in file CameraControlHelperSink.java to receive camera control, speaker switching, and preset notifications.

      public void onUpdateSpeakerSwitchingSettingsNotification(SpeakerSwitchingSettingsInfo info)
      public void onEnableSpeakerSwitchingResult(int result, boolean speakerSwitchingEnabledOnZR)
      public void onUpdateCameraIntelligentZoomNotification(CameraIntelligentZoomInfo info)
      public void onUpdateMultiCameraEnabled(boolean isMultiCameraEnabled)
      public void onUpdateMaxMultiCameraCount(int maxMultiCameraCount)
      public void onUpdateMainCameraControlInfo(CameraControlInfo mainCameraControlInfo)
      public void onUpdateMultiCameraControlInfos(List<CameraControlInfo> multiCameraControlInfos)
      public void onCameraPanTiltResult(CameraPanTiltResult result)
      public void onUpdateMeetingUserCameraControlStatus(int userID, CameraControlStatus cameraControlStatus)
      public void onFarEndCameraControlNotification(FarEndCameraControlInfo cameraControlInfo)
      public void onFarEndCameraCameraControlResult(int result, int type, boolean accept)
      public void onTreatedCameraControlRequestNotification(boolean accepted, int userID)
      public void onMirrorVideoResult(MirrorSelfVideoRes response)
      public void onUpdateCameraPresetInfo(CameraPresetInfo info)
      
    • Added class MeetingShareHelper in file MeetingShareHelper.java to expose local presentation, content sharing, HDMI sharing, and docs-sharing APIs.

      public boolean isValid()
      public int registerSink(MeetingShareHelperSink sink)
      public int deregisterSink()
      public int launchSharingMeeting(boolean isInLocalShare, int displayState)
      public int switchFromLocalPresentationToNormalMeeting()
      public int showSharingInstruction(boolean show, int instructionState)
      public int shareBlackMagic(boolean isStart, boolean isViewLocally)
      public int shareCamera(boolean isStart, String deviceId)
      public int shareToBreakoutRooms()
      public int stopShareToBreakoutRooms()
      public int stopSharing()
      public int stopZRWSharing()
      public int enableMultiShare(boolean enabled)
      public int showPinShareInstruction(boolean show)
      public int pinShareOnZRScreen(ShareSource shareSource, int screenIndex, boolean confirmed)
      public int pinShareOnZRWScreen(ShareSource shareSource, int screenIndex)
      public int pinIncomingMeetingShare(ShareSource incomingShare, int currentShare, boolean pin)
      public int controlSlide(SlideControlInfo slideInfo, int type)
      public int muteShareAudio(ShareSource source, boolean mute)
      public int enableHDMI60FPSShare(boolean enable)
      public int setHDMIShareResolutionAndFrameRate(int type)
      public boolean getLocalHDMIShareAudioPlaybackStatus()
      public int enableLocalHDMIShareAudioPlayback(boolean enable)
      public int enableAnnotationOverHDMI(boolean enable)
      public int setMeetingShareSetting(int type)
      public int setMeetingShareViewPrivilege(int type)
      public int optimizeVideoSharing(boolean optimize)
      public int allowParticipantsShareDocs(boolean allow)
      public int changeDocsSharePrivilege(int type)
      public int changeDocsInitiatePrivilege(int type)
      public DocsShareSettingsInfo getDocsShareSettingsInfo()
      public void cleanup()
      public boolean triggerTestCallbacks()
      
    • Added callback class MeetingShareHelperSink in file MeetingShareHelperSink.java to receive sharing status, sharing source, HDMI, and docs-sharing notifications.

      public void onStartLocalPresentNotification(LocalPresentationInfo info)
      public void onStartLocalPresentResult(boolean isSharingMeeting, int displayState)
      public void onSwitchToNormalMeetingResult(int result)
      public void onShowSharingInstructionResult(int result, boolean show, int instructionState)
      public void onShareSettingNotification(ShareSetting setting)
      public void onSharingStatusNotification(SharingStatus status)
      public void onUpdateAirPlayBlackMagicStatus(AirplayBlackMagicStatus status)
      public void onUpdateCameraSharingStatus(CameraSharingStatus status)
      public void onSharingSourceNotification(List<ShareSource> zrShareSources, List<ShareSource> zrwShareSources)
      public void onHDMI60FPSShareInfoNotification(boolean isAllow, boolean isOn, int disableReason)
      public void onLocalHDMIShareAudioPlaybackNotification(boolean isEnabled)
      public void onHDMIShareResolutionAndFrameRateNotification(List<HDMIShareResolutionAndFrameRateOption> selectionList, int selectedType)
      public void onUpdateClassicWhiteboardShareStatusNotification(ClassicWhiteboardShareStatus status)
      public void onZRWSharingStatusNotification(ZRWSharingStatus status)
      public void onUpdateLocalViewStatus(boolean isOn)
      public void onIncomingMeetingShareNotification(IncomingMeetingShareNot noti)
      public void onSlideControlNotification(List<SlideControlInfo> slideControlInfos)
      public void onDocsShareSettingsNotification(DocsShareSettingsInfo info)
      
  • Added new participant management interfaces in files ParticipantHelper.java, ParticipantHelperSink.java.

    • Added class ParticipantHelper in file ParticipantHelper.java to expose participant query, moderation, host, attendee permission, avatar, and local-time APIs.
      public boolean isValid()
      public int registerSink(ParticipantHelperSink sink)
      public int deregisterSink()
      public List<MeetingParticipant> getParticipantsInMeeting(int session)
      public List<MeetingParticipant> getVirtualParticipantsInMeeting(int session)
      public List<MeetingParticipant> getParticipantsInSilentMode()
      public List<MeetingParticipant> getParticipantsLeftMeeting()
      public int assignHost(int userID)
      public int assignCohost(int userID, boolean assign)
      public int claimHost(String key)
      public int renameUser(int userID, String name)
      public int expelUser(int userID)
      public int expelUsers(List<Integer> userIDs)
      public int suspendParticipantsActivities()
      public int raiseHand(boolean raise)
      public int lowerUserHand(int userID)
      public int lowerAllHands()
      public int lowerAllAttendeesHands()
      public int enableAttendeesAnnotateOnShare(boolean enable)
      public int allowAttendeesRenameThemselves(boolean allow)
      public boolean isAttendeesRenameThemselvesEnabled()
      public boolean isAttendeesRenameThemselvesLocked()
      public boolean isAttendeesRenameThemselvesAllowed()
      public int allowWebinarAttendeeRaiseHand(boolean allow)
      public int allowAttendeesShareWhiteboards(boolean allow)
      public int hideProfilePictures(boolean hidden)
      public boolean isFullRoomViewAvailableForUser(int userID)
      public int hideFullRoomView(boolean isHide, int userID)
      public int downloadUserAvatar(String avatarUrl, String localFilePath)
      public int reportIssue(List<Integer> userIDs, int type,
      
      

…See the full changelog on Zoom Developers.