we tried to implement the appropriate callback, as a starting point we took up the implementation in Android first. **We have implemented the ‘InMeetingServiceListener’ interface and overridden the method “onJoinWebinarNeedUserNameAndEmail” , but somehow the callback is not getting invoked
Please guide.
Hi @cindy, thanks for using our SDK.
Can you please provide a code snippet showing how you are setting up your InMeetingServiceListener
implementation and passing into the SDK?
Thanks!
package com.justwinked;
import android.annotation.SuppressLint;
import android.util.Log;
import androidx.annotation.NonNull;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import java.util.List;
import us.zoom.sdk.FreeMeetingNeedUpgradeType;
import us.zoom.sdk.InMeetingAudioController;
import us.zoom.sdk.InMeetingChatMessage;
import us.zoom.sdk.InMeetingEventHandler;
import us.zoom.sdk.InMeetingServiceListener;
import us.zoom.sdk.JoinMeetingOptions;
import us.zoom.sdk.JoinMeetingParams;
import us.zoom.sdk.MeetingError;
import us.zoom.sdk.MeetingService;
import us.zoom.sdk.MeetingServiceListener;
import us.zoom.sdk.MeetingStatus;
import us.zoom.sdk.MeetingViewsOptions;
import us.zoom.sdk.ZoomError;
import us.zoom.sdk.ZoomSDK;
import us.zoom.sdk.ZoomSDKInitParams;
import us.zoom.sdk.ZoomSDKInitializeListener;
import us.zoom.sdk.MeetingOptions;
public class ZoomManager extends ReactContextBaseJavaModule implements ZoomSDKInitializeListener, MeetingServiceListener, InMeetingServiceListener {
private final ReactApplicationContext reactContext;
public ZoomManager(ReactApplicationContext context) {
super(context);
this.reactContext = context;
}
@NonNull
@Override
public String getName() {
return "AwesomeZoomSDK";
}
@SuppressLint("LongLogTag")
@ReactMethod
public void initZoom(String publickey, String privatekey, String domain, Promise promise){
Log.d(this.getName(),"Init zoom:"+publickey+"and privatekey: " +privatekey+"domain: "+domain);
try{
this.getReactApplicationContext().getCurrentActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
ZoomSDK zoomSDK= ZoomSDK.getInstance();
ZoomSDKInitParams initParams= new ZoomSDKInitParams();
initParams.appKey=publickey;
initParams.appSecret=privatekey;
initParams.enableGenerateDump=true;
initParams.enableLog=true;
initParams.domain=domain;
zoomSDK.initialize(reactContext.getCurrentActivity(), (ZoomSDKInitializeListener) ZoomManager.this,initParams);
}
});
}catch(Exception e){
Log.e("ERR_UNEXPECTED_EXCEPTION",e.getMessage());
promise.reject("ERR_UNEXPECTED_EXCEPTION",e);
}
}
@ReactMethod
public Promise joinMeeting(String displayName, String meetingNumber, String password,String email, Promise promise){
Log.d("ou shit","Join meeing called:displayName : "+displayName+"and MeetingNumber: " +meetingNumber+"password: "+password+"Promise: "+promise);
ZoomSDK zoomSDK=ZoomSDK.getInstance();
Log.d("ou shit","Zoom SDK Value==="+zoomSDK);
if(!zoomSDK.isInitialized()){
promise.reject("Error Zoom start","Zoom has not been initialize successfully");
return promise;
}
MeetingService meetingService=zoomSDK.getMeetingService();
zoomSDK.getZoomUIService().prePopulateWebinarRegistrationInfo(email,"");
// zoomSDK.getMeetingSettingsHelper().get
Log.d("ou shit","meetingService==="+meetingService);
if(meetingService==null){
promise.reject("Error Zoom start","Zoom meeting service has not been initialize successfully");
return promise;
}
JoinMeetingOptions opts =new JoinMeetingOptions();
MeetingOptions meet =new MeetingOptions();
opts.no_invite=true;
opts.custom_meeting_id="Winked!";
// opts.no_webinar_register_dialog=true;
//opts.meeting_views_options= MeetingViewsOptions.NO_TEXT_MEETING_ID;
JoinMeetingParams params=new JoinMeetingParams();
params.displayName=displayName;
params.meetingNo=meetingNumber;
params.password=password;
try{
int joinMeetingResult=meetingService.joinMeetingWithParams(this.reactContext,params,opts);
Log.i(this.getName(),"joinMeeting,joinMeetingResult= "+joinMeetingResult);
if(joinMeetingResult!= MeetingError.MEETING_ERROR_SUCCESS){
promise.reject("ERR_ZOOM_JOIN","joinMeeting , ErrorCode: "+joinMeetingResult);
}
Promise meetingPromise = promise;
return meetingPromise;
}catch(Exception e){
promise.reject("JoinMeetingException:",e);
}
return promise;
}
@Override
public void onZoomSDKInitializeResult(int errorCode, int internalErrorCode) {
Log.d(this.getName(),"Initializing meeting server successful"+errorCode+"and internalErrorCode"+internalErrorCode);
if(errorCode== ZoomError.ZOOM_ERROR_SUCCESS){
Log.d(this.getName(),"Initializing meeting service successful");
ZoomSDK zoomSDK=ZoomSDK.getInstance();
MeetingService meetingService= zoomSDK.getMeetingService();
if(meetingService!=null){
Log.d(this.getName(),"Adding listener for meeting service");
meetingService.addListener(this);
}
}
}
@Override
public void onZoomAuthIdentityExpired() {
}
@Override
public void onMeetingStatusChanged(MeetingStatus meetingStatus, int errorCode, int internalErrorCode) {
Log.d(this.getName(),"MeetingStatus changed meetingStatus: "+meetingStatus+"errorCode: "+errorCode+"and internalErrorCode"+internalErrorCode);
switch(meetingStatus){
case MEETING_STATUS_FAILED:{
break;
}
case MEETING_STATUS_DISCONNECTING:{
break;
}
case MEETING_STATUS_INMEETING:{
break;
}
case MEETING_STATUS_IN_WAITING_ROOM:{
break;
}
}
}
@Override
public void onMeetingNeedPasswordOrDisplayName(boolean b, boolean b1, InMeetingEventHandler inMeetingEventHandler) {
}
@Override
public void onWebinarNeedRegister() {
}
@Override
public void onJoinWebinarNeedUserNameAndEmail(InMeetingEventHandler inMeetingEventHandler) {
Log.d("callback","setRegistration called");
inMeetingEventHandler.setRegisterWebinarInfo("ABC","ABC@gmail.com",false);
}
@Override
public void onMeetingNeedColseOtherMeeting(InMeetingEventHandler inMeetingEventHandler) {
}
@Override
public void onMeetingFail(int i, int i1) {
}
@Override
public void onMeetingLeaveComplete(long l) {
Log.d("onMeetingLeaveComplete","s999999999999999999999999999999999");
}
@Override
public void onMeetingUserJoin(List<Long> list) {
Log.d("onMeetingUserJoin","-------------------------------");
}
@Override
public void onMeetingUserLeave(List<Long> list) {
Log.d("onMeetingUserLeave","------------------------------------");
}
@Override
public void onMeetingUserUpdated(long l) {
}
@Override
public void onMeetingHostChanged(long l) {
}
@Override
public void onMeetingCoHostChanged(long l) {
}
@Override
public void onActiveVideoUserChanged(long l) {
}
@Override
public void onActiveSpeakerVideoUserChanged(long l) {
}
@Override
public void onSpotlightVideoChanged(boolean b) {
}
@Override
public void onUserVideoStatusChanged(long l) {
}
@Override
public void onUserVideoStatusChanged(long l, VideoStatus videoStatus) {
}
@Override
public void onUserNetworkQualityChanged(long l) {
}
@Override
public void onMicrophoneStatusError(InMeetingAudioController.MobileRTCMicrophoneError mobileRTCMicrophoneError) {
}
@Override
public void onUserAudioStatusChanged(long l) {
}
@Override
public void onUserAudioStatusChanged(long l, AudioStatus audioStatus) {
}
@Override
public void onHostAskUnMute(long l) {
}
@Override
public void onHostAskStartVideo(long l) {
}
@Override
public void onUserAudioTypeChanged(long l) {
}
@Override
public void onMyAudioSourceTypeChanged(int i) {
}
@Override
public void onLowOrRaiseHandStatusChanged(long l, boolean b) {
}
@Override
public void onMeetingSecureKeyNotification(byte[] bytes) {
}
@Override
public void onChatMessageReceived(InMeetingChatMessage inMeetingChatMessage) {
}
@Override
public void onSilentModeChanged(boolean b) {
}
@Override
public void onFreeMeetingReminder(boolean b, boolean b1, boolean b2) {
}
@Override
public void onMeetingActiveVideo(long l) {
}
@Override
public void onSinkAttendeeChatPriviledgeChanged(int i) {
}
@Override
public void onSinkAllowAttendeeChatNotification(int i) {
}
@Override
public void onUserNameChanged(long l, String s) {
}
@Override
public void onFreeMeetingNeedToUpgrade(FreeMeetingNeedUpgradeType freeMeetingNeedUpgradeType, String s) {
}
@Override
public void onFreeMeetingUpgradeToGiftFreeTrialStart() {
}
@Override
public void onFreeMeetingUpgradeToGiftFreeTrialStop() {
}
@Override
public void onFreeMeetingUpgradeToProMeeting() {
}
@Override
public void onClosedCaptionReceived(String s) {
}
@Override
public void onRecordingStatus(RecordingStatus recordingStatus) {
}
}
Hi @cindy,
Thanks for providing that. I’m not seeing anything there which indicates that you are passing an instance of your implementation into the addListener
method. Can you confirm whether or not this is being done?
Thanks!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.