How to Make a Video Calling App for Android for Free?

Android, Android Apps

Video calling has become an essential part of our lives, especially in the current pandemic situation. With the increasing demand for video calling apps, it’s no surprise that many developers are interested in creating their own video calling applications. Whether you’re a beginner or an experienced developer, this tutorial will help you create your own video calling app for Android without spending a single penny.

Step 1: Set up your development environment

Before we dive into the actual coding process, make sure you have set up your development environment. You can use Android Studio, which is a free IDE (Integrated Development Environment) provided by Google to develop Android apps. Download and install the latest version of Android Studio from the official website.

Step 2: Create a new project

Once you have set up your development environment, create a new project by following these steps:

  • Go to File > New > New Project.
  • Select “Empty Activity” and click “Next.”
  • Give your project a name and package name.
  • Click “Finish.”

Step 3: Add necessary dependencies to your project

Now that you have created a new project, add the necessary dependencies to your build.gradle file. These dependencies will be used to implement video calling functionality in your app.

Add the following lines of code to your build.gradle file:

dependencies {
    implementation 'com.quickblox:quickblox-android-sdk-videochat-webrtc:3.8.2'

Note: QuickBlox SDK provides video calling functionality out of the box.

Step 4: Register for QuickBlox and get credentials

To use QuickBlox SDK for video calling in our app, we need to register on their website and get the necessary credentials. Here are the steps to do so:

  • Go to QuickBlox’s website and sign up for a new account.
  • Create a new application by clicking on “Applications” in the top menu and then clicking on “Add new app.”
  • Fill in the necessary details and click on “Create Application.”
  • Once your application is created, go to the “Credentials” section to get your App ID, Authorization Key, and Authorization Secret.

Note: You will need these credentials later in your code.

Step 5: Implement video calling functionality

Now comes the fun part – implementing video calling functionality in our app.

Here’s a basic implementation of video calling using QuickBlox SDK:

// Initialize QuickBlox SDK
QBSettings.getInstance().init(getApplicationContext(), APP_ID, AUTH_KEY, AUTH_SECRET);

// Create session with QuickBlox
QBAuth.createSession(new QBEntityCallback() {
    public void onSuccess(QBSession qbSession, Bundle bundle) {
        // Initialize WebRTC Session Manager
        QBRTCClient.getInstance(getApplicationContext()).init(new QBRTCConfig(), new QBRTCSignalingManager(getApplicationContext()));

        // Create local audio and video tracks
        QBMediaStreamManager mediaStreamManager = QBRTCClient.getMediaStreamManager();
        mediaStreamManager.setVideoCapturer(new QBRTCCameraVideoCapturer(getApplicationContext()));
        mediaStreamManager.setAudioTracks(new ArrayList<>(Collections.singletonList(QBRTCMediaConfig.getAudioTrack())));

        // Create peer connection
        QBRTCSession qbrtcSession = QBRTCClient.createNewSession(Collections.singletonList(USER_ID), new HashMap<>());
        qbrtcSession.startCall(new HashMap<>());

    public void onError(QBResponseException e) {
        // Handle error

Note: Replace APP_ID, AUTH_KEY, AUTH_SECRET, ACCOUNT_KEY, and USER_ID with your own values.

Step 6: Test your app

Now that you have implemented video calling functionality in your app, it’s time to test it out. Run your app on an Android device or emulator and try to make a call.

If everything is working fine, congratulations! You have successfully created your own video calling app for Android. If not, go back and check for any errors in your code.


In this tutorial, we learned how to create a video calling app for Android using QuickBlox SDK. We started by setting up our development environment and creating a new project.

Then we added the necessary dependencies and registered for QuickBlox to get the required credentials. Finally, we implemented video calling functionality using QuickBlox SDK and tested our app.

With this knowledge, you can now create your own video calling apps with ease. Happy coding!