Screen Share issues in meeting SDK

I want to implement the same functionality of ‘share screen’ button as like that of Zoom.
My code for that is shown below.
share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
final EditText edittext = new EditText(MainActivity.this);
alert.setMessage(“\nEnter sharing key or Meeting ID to share to a Zoom Room”);
alert.setTitle(“\t\t\t\t\t\t\t\tShare Screen”);

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.MATCH_PARENT);
    edittext.setLayoutParams(lp);
    alert.setView(edittext);

    alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            //What ever you want to do with the value
         final  Editable YouEditTextValue = edittext.getText();

// MediaProjectionManager manager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
// if (manager != null) {
// Intent intent = manager.createScreenCaptureIntent();
// startActivityForResult(intent, REQUEST_SCREEN_CAPTURE);
// }
MeetingService meetingService1 = ZoomSDK.getInstance().getMeetingService();
JoinMeetingOptions options = new JoinMeetingOptions();
options.no_invite = true;
options.no_audio=true;
options.no_video=true;
options.no_bottom_toolbar = true;
options.no_dial_in_via_phone = true;
options.no_dial_out_to_phone = true;

            //meetingService.addListener(meetingServiceListener);

            JoinMeetingParams params1 = new JoinMeetingParams();
            //params.displayName = "User Name";
            params1.meetingNo = String.valueOf(YouEditTextValue);
            params1.password = MeetingParams.getPassword();
            meetingService1.joinMeetingWithParams(MainActivity.this, params1, options);
            //InMeetingService inMeetingService = ZoomSDK.getInstance().getInMeetingService();
            meetingService1.addListener(new MeetingServiceListener() {

                @Override
                public void onMeetingStatusChanged(MeetingStatus meetingStatus, int i, int i1) {
                    switch (meetingStatus) {
                        case MEETING_STATUS_CONNECTING:
                            // Meeting is connecting
                            break;
                        case MEETING_STATUS_INMEETING: {
                            startMediaProjectionRequest();

                       }
                            break;
                        }
                }

                @Override
                public void onMeetingParameterNotification(MeetingParameter meetingParameter) {

                }
            });


        }
    });

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            // what ever you want to do with No option.
        }
    });

    alert.show();
}

});
}
private void startMediaProjectionRequest() {
if (mScreenInfoData == null) {
mediaProjectionManager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), MEDIA_PROJECTION_REQUEST_CODE);
} else {
startScreenShareService();
}
}

@SuppressLint(“NewApi”)
private void startShareScreen(Intent data) {
// Timber.e(“Start share screen %s”, data);
mScreenInfoData = data;
if (data == null) {
return;
}
if (Build.VERSION.SDK_INT >= 24) {
Intent intent = new Intent(“android.settings.action.MANAGE_OVERLAY_PERMISSION”, Uri.parse(“package:” + getPackageName()));
startActivityForResult(intent, REQUEST_SYSTEM_ALERT_WINDOW);
} else {
startScreenShareService();
}
}

private void startScreenShareService() {
MobileRTCSDKError error = ZoomSDK.getInstance().getInMeetingService().getInMeetingShareController().startShareScreenSession(mScreenInfoData);

}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
{
if (requestCode == MEDIA_PROJECTION_REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
startShareScreen(data);
} else {
// Timber.e(“Screen share permission denied!”);
}
} else if (requestCode == REQUEST_SYSTEM_ALERT_WINDOW) {
ZoomSDK.getInstance().getInMeetingService().getInMeetingShareController().startShareScreenSession(mScreenInfoData);
}
}
In this code the share screen is not working. Can anyone review the code and please suggest a solution.

Screen share issues are not resolved

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.