Skip to main content
Version: 0.2.3


Get the roomName for the meeting and the participant's authToken from our backend APIs (read more about our server APIs here), and pass them to Dyte's client SDK.

There are 2 ways to launch a meeting:

  1. Activity
  2. View

The activity based setup is straightforward while using a view requires some additional boilerplate code.

Using Activity#

This will launch a fullscreen view with your meeting.

import com.dyteclientmobile.MeetingConfig;import com.dyteclientmobile.DyteMeeting;import com.dyteclientmobile.DyteMeetingActivity;
// Configure meeting parametersval config = MeetingConfig();config.setRoomName("<roomName>").setAuthToken("<authToken>");
// Launch the activityval meetingIntent = Intent(this,

Using View#

Using a view allows you more control on how your meeting is rendered, but it comes with setup boilerplate code. The main reason anyone would use a View based initialization is when they want the meeting to be rendered with custom dimensions and not occupy the full screen like the Activity.

import com.dyteclientmobile.MeetingConfig;import com.dyteclientmobile.DyteMeeting;import com.dyteMobileSdk.DyteInstanceManager;
    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main_layout);            // Configure meeting parameters            MeetingConfig config = MeetingConfig();                config.setRoomName("<roomName>")                    .setAuthToken("<authToken>");
            DyteMeeting.setup(config);            View view = DyteMeeting.init(this,width, height);
            // Example            ViewGroup viewgroup = findViewById(;            viewgroup.add(view);    }

    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (requestCode == OVERLAY_PERMISSION_REQ_CODE) {            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {                if (!Settings.canDrawOverlays(this)) {                    // SYSTEM_ALERT_WINDOW permission not granted                }            }        }        if (DyteInstanceManager.instance != null) {            DyteInstanceManager.instance.onActivityResult(this, requestCode, resultCode, data);        }    }

    @Override    protected void onPause() {        super.onPause();
        if (DyteInstanceManager.instance != null) {            DyteInstanceManager.instance.onHostPause(this);        }    }
    @Override    protected void onResume() {        super.onResume();
        if (DyteInstanceManager.instance != null) {            DyteInstanceManager.instance.onHostResume(this, this);        }    }
    @Override    protected void onDestroy() {        super.onDestroy();
        if (DyteInstanceManager.instance != null) {            DyteInstanceManager.instance.onHostDestroy(this);        }        if (DyteInstanceManager.instance != null) {            DyteInstanceManager.unmountApplication();        }    }

    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {        if (DyteInstanceManager.permissionsHandler != null) {            DyteInstanceManager.permissionsHandler.onRequestPermissionsResult(requestCode, permissions, grantResults);        }    }