Screen Share - Android
Screen sharing in a meeting is the process of sharing your mobile screen with other participants in the meeting. It allows everyone in the meeting to see exactly what you are seeing on your screen, which can be helpful for presentations, demonstrations, or collaborations.
How Screen share works?​
- The following diagram shows flow of the screen sharing in android using VideoSDK :
enableScreenShare()
​
-
By using
enableScreenShare()
function ofMeeting
class, local participant can share his/her mobile screen to other participants. -
You can pass customised screenshare track in
enableScreenShare()
by using Custom Screen Share Track. -
Screen Share stream of the participant can be accessed from the
onStreamEnabled
event ofParticipantEventListener
.
Screenshare permission​
-
A participant’s Screen share stream is provided via the
MediaProjection
API. This API is only compatible withBuild.VERSION_CODES.LOLLIPOP
or higher. -
Get an instance of the
MediaProjectionManager
and Call thecreateScreenCaptureIntent()
method in an activity. This initiates a prompt dialog for the user to confirm screen projection. -
One will get a prompt dialog like this:

- After permission is received from the user, you can call
enableScreenShare()
method.
- Kotlin
- Java
private fun enableScreenShare() {
val mediaProjectionManager = application.getSystemService(
MEDIA_PROJECTION_SERVICE
) as MediaProjectionManager
startActivityForResult(
mediaProjectionManager.createScreenCaptureIntent(), CAPTURE_PERMISSION_REQUEST_CODE
)
}
public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode != CAPTURE_PERMISSION_REQUEST_CODE) return
if (resultCode == RESULT_OK) {
// Enabling screen share
meeting!!.enableScreenShare(data)
}
}
private void enableScreenShare() {
MediaProjectionManager mediaProjectionManager =
(MediaProjectionManager) getApplication().getSystemService(
Context.MEDIA_PROJECTION_SERVICE);
startActivityForResult(
mediaProjectionManager.createScreenCaptureIntent(), CAPTURE_PERMISSION_REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode != CAPTURE_PERMISSION_REQUEST_CODE)
return;
if (resultCode == Activity.RESULT_OK) {
// Enabling screen share
meeting.enableScreenShare(data);
}
}
Customise notification​
-
When a presenter starts screen share, presenter will receive a notification with a pre-defined title and message.
-
Notification with pre-defined title and message will look like this:

- You can Customise those title, message and icon as per your requirements using
<meta-data>
specified inapp/src/main/AndroidManifest.xml
.
<application>
<meta-data
android:name="notificationTitle"
android:value="@string/notificationTitle"
/>
<meta-data
android:name="notificationContent"
android:value="@string/notificationContent"
/>
<meta-data
android:name="notificationIcon"
android:resource="@mipmap/ic_launcher_round"
/>
</application>
disableScreenShare()
​
- By using
disableScreenShare()
function ofMeeting
class, local participant can stop sharing his/her mobile screen to other participants.
- Kotlin
- Java
private fun disableScreenShare() {
// Disabling screen share
meeting!!.disableScreenShare()
}
private void disableScreenShare(){
// Disabling screen share
meeting.disableScreenShare();
}
Events associated with enableScreenShare​
-
Participant who share their mobile screen will receive a callback on
onStreamEnabled()
of theParticipant
withStream
object. -
While other Participants will receive
onPresenterChanged()
callback of theMeeting
class with the participantId aspresenterId
who started the screen share.