onMeetingStatusChanged - always on MEETING_STATUS_CONNECTING

Hi,

what do you mean the location of meeting?

Is this reproducible with our demo app?
I’m not sure, because I didn’t try the demo app. :sweat_smile:

Below is my implementation, hope it can help:
public class MainActivity extends AppCompatActivity implements Constants,
ZoomSDKInitializeListener,
MeetingServiceListener,
ZoomSDKAuthenticationListener {

private static final String TAG = MainActivity.class.getSimpleName();
MeetingService meetingService;
InMeetingService inMeetingService;
ZoomSDK zoomSDK;
InstantMeetingOptions instantMeetingOptions;

private EditText emailEdt;
private EditText passwordEdt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    emailEdt = findViewById(R.id.email);
    passwordEdt = findViewById(R.id.password);

    zoomSDK = ZoomSDK.getInstance();
    zoomSDK.initialize(this, APP_KEY, APP_SECRET, this);
}

@Override
protected void onStart() {
    super.onStart();
    zoomSDK.addAuthenticationListener(this);
}

@Override
protected void onStop() {
    super.onStop();
    meetingService.removeListener(this);
    zoomSDK.removeAuthenticationListener(this);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    meetingService.leaveCurrentMeeting(true);
}

public void login(View view) {
    if (!zoomSDK.isInitialized()) {
        Toast.makeText(this, "ZoomSDK has not been initialized successfully", Toast.LENGTH_LONG).show();
        return;
    }

    String email = emailEdt.getText().toString();
    String password = passwordEdt.getText().toString();
    if (zoomSDK.loginWithZoom(email, password) != ZoomApiError.ZOOM_API_ERROR_SUCCESS) {
        Toast.makeText(this, "ZoomSDK has not been logged in successfully", Toast.LENGTH_LONG).show();
    }
}

public void startMeeting(View view) {
    if (zoomSDK.isLoggedIn()) {
        meetingService = zoomSDK.getMeetingService();
        meetingService.addListener(this);
        instantMeetingOptions = new InstantMeetingOptions();
        inMeetingService = zoomSDK.getInMeetingService();
        int ret = meetingService.startInstantMeeting(this, instantMeetingOptions);

        Log.d(TAG, String.format("[startMeeting] result of startInstantMeeting: %d", ret));
    } else {
        Toast.makeText(this, "Please Login First", Toast.LENGTH_LONG).show();
    }
}

@Override
public void onMeetingStatusChanged(MeetingStatus meetingStatus, int errorCode, int internalErrorCode) {
    Log.d(TAG, String.format("[onMeetingStatusChanged] meetingStatus: %s", meetingStatus.toString()));
    Log.d(TAG, String.format("[onMeetingStatusChanged] getCurrentMeetingID: %s", inMeetingService.getCurrentMeetingID()));
    Log.d(TAG, String.format("[onMeetingStatusChanged] MeetingNumber: %d", inMeetingService.getCurrentMeetingNumber()));
    Log.d(TAG, String.format("[onMeetingStatusChanged] MeetingTopic: %s", inMeetingService.getCurrentMeetingTopic()));
    Log.d(TAG, String.format("[onMeetingStatusChanged] MeetingUrl: %s", inMeetingService.getCurrentMeetingUrl()));
}

@Override
public void onZoomSDKLoginResult(long result) {
    if (result == ZoomAuthenticationError.ZOOM_AUTH_ERROR_SUCCESS) {
        Toast.makeText(this, "[onZoomSDKLoginResult] Login success", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "[onZoomSDKLoginResult] Login failed result code = " + result, Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onZoomSDKLogoutResult(long l) {

}

@Override
public void onZoomIdentityExpired() {

}

@Override
public void onZoomSDKInitializeResult(int errorCode, int internalErrorCode) {
    Log.d(TAG, String.format("[onZoomSDKInitializeResult] errorCode: %d, internalErrorCode: %d", errorCode, internalErrorCode));
    if (errorCode == ZoomAuthenticationError.ZOOM_AUTH_ERROR_SUCCESS) {
        zoomSDK.tryAutoLoginZoom();
    }
}

@Override
public void onZoomAuthIdentityExpired() {

}

public void logout(View view) {
    zoomSDK.logoutZoom();
}

}