Get Started

Quick Start

MeetTalk Android SDK provides all of the features available in the PowerTalk SDK, with the addition of voice and video call feature. This page presents a brief overview of the SDK’s structure and abilities, then lets you go through the preliminary steps of implementing the SDK in your own app.

Configure and Initialize TapTalk.io Android SDK

The first step to configure MeetTalk SDK will be the same as configuring PowerTalk SDK, if you have completed this step, you can skip to Step 2.

Step 1: Create a new application from your dashboard

1. Login to TapTalk.io Dashboard, then choose Development -> Apps

2. Click New App Button, input App Name and choose Platform, and then click Create New App Button.

3. A pop-up dialog will be shown with provided App Key ID & App Key Secret

Note: Please remember to save your App Key ID & your App Key Secret because it will only be shown once and will be used in TapTalk.io initialization

Step 2: Install MeetTalk SDK

To start, open your Android project and add the following repositories to your top-level build.gradle file.Project build.gradle

build.gradle (project)
allprojects {
   repositories {
      ...
      maven { url "https://jitpack.io" }
      maven { url "https://s3.amazonaws.com/repo.commonsware.com" }
      maven { url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases" }
   }
}

Please also note that the minimum SDK version to install MeetTalk SDK is 23.

Then add the following dependency to your app-level build.gradle:

build.gradle (:app)
android {
    ...
    defaultConfig {
        ...
        minSdkVersion 23
    }
}

dependencies {
    implementation 'com.github.taptalk-io:meettalk-android:1.2.8'
}

You can check a more updated version release notes of the SDK here.

Note: In the app build.gradle file, make sure that your project is using supported Java 8 language features like below

build.gradle (:app)
android {
    
    ...

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Step 3: Initialize MeetTalk in your Application class

In order to use MeetTalk, you must first initialize an instance by passing the APP_ID, APP_SECRET, APP_ICON, APP_BASE_URL, and IMPLEMENTATION_TYPE assigned to your application to the init method as a parameter. Generally, initialization is implemented in the Application class in your project.

Note: To get BASE_URL you can follow our documentation on how to get Base URL on TapTalk.io

MeetTalk.init(
  CONTEXT, 
  APP_KEY_ID, 
  APP_KEY_SECRET,            
  APP_ICON, 
  APP_NAME, 
  APP_BASE_URL,            
  IMPLEMENTATION_TYPE, 
  meetTalkListener);

Parameters CONTEXT: (Context) application context APP_KEY_ID: (String) application key ID APP_KEY_SECRET: (String) application key Secret APP_ICON: (int) drawable resource ID APP_NAME: (String) your application name APP_BASE_URL: (String) base API URL IMPLEMENTATION_TYPE: (enum) found in TapTalkImplentationType, more detailed information below meetTalkListener: (MeetTalkListener) an interface to detect PowerTalk and MeetTalk Android SDK's delegates and callbacks

IMPLEMENTATION_TYPE TapTalkImplementationType consists of 3 types which are: TapTalkImplementationTypeUI: used for implementation with only TapUI TapTalkImplementationTypeCore: used for implementation with only TapCore TapTalkImplementationTypeCombine: used for implementation with both of TapCore and TapUI combined

Note: MeetTalk.init() will also initialize a TapTalk instance, so If you have previously used PowerTalk in your application and initializing TapTalk instance with TapTalk.init(), replace TapTalk.init() with MeetTalk.init() and put MeetTalkListener in the parameter instead of TapListener

Step 4: Authenticate to TapTalk.io

In order to use the abilities of the Android SDK in your client app, a TapTalk instance must be initiated in each client app through user authentication with TapTalk.io server. An authenticated user account allows the instance to communicate and interact with the server. To authenticate your user with the server, follow the instructions in Authentication page.

Setup FileProvider in your application

To enable file transfer through chat messages, you need to define FileProvider in your application's AndroidManifest.xml file, under the <application> tag.

AndroidManifest.xml
<application
    android:name=".YourApplication"
    ...>

    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="${applicationId}.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths" />
    </provider>

</application>

If your project already has defined paths, make sure the following paths exist in your paths xml file:

your_file_paths.xml
<paths>
    <files-path name="YourFilesPath" path="." />
    <external-path name="YourExternalPath" path="." />
    <cache-path name="YourCachePath" path="."/>
    <external-files-path name="YourExternalFilesPath" path="."/>
    <external-cache-path name="YourExternalCachePath" path="."/>
</paths>

Initialize Google Places API Key (Optional)

To enable location search result preview while sending location message, a Google Places API Key is required. To obtain the API key for your application, you can check the documentation provided by Google. To initialize, insert your obtained key using the initializeGooglePlacesApiKey() method.

TapTalk.initializeGooglePlacesApiKey(GOOGLE_PLACES_API_KEY);

Your key also needs to be defined in your application's AndroidManifest.xml file, under the <application> tag.

AndroidManifest.xml
<application
    android:name=".YourApplication"
    ...>

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="GOOGLE_PLACES_API_KEY" />

</application>

Parameters GOOGLE_PLACES_API_KEY: (String) Google Places API Key

Enable Cleartext Traffic

To enable some features, such as sending link preview in messages, please enable usesCleartextTraffic in AndroidManifest.xml file.

AndroidManifest.xml
<application
    android:name=".YourApplication"
    ...
    android:usesCleartextTraffic="true">

    ...

</application>

Initiate New Call

Initiating a call in MeetTalk requires data from TAPRoomModel. which will then be used to construct a conference data for the call. To initiate a call, use the initiateNewConferenceCall method from MeetTalk class.

You may also customize the outgoing call using the provided parameters.

// Initiate a voice call (participants will enter call with video muted)
MeetTalk.initiateNewConferenceCall(ACTIVITY, ROOM);

// Initiate a call with custom audio/video state
MeetTalk.initiateNewConferenceCall(ACTIVITY, ROOM, START_WITH_AUDIO_MUTED, START_WITH_VIDEO_MUTED);

// Initiate a call with custom audio/video state and recipient display name
MeetTalk.initiateNewConferenceCall(ACTIVITY, ROOM, START_WITH_AUDIO_MUTED, START_WITH_VIDEO_MUTED, RECIPIENT_DISPLAY_NAME);

Parameters ACTIVITY: (Activity) The app's current foreground activity, which will be used to launch the call screen ROOM: (TAPRoomModel) the chat room where the call will be initiated START_WITH_AUDIO_MUTED: (boolean) initial state of the participants' microphone START_WITH_VIDEO_MUTED: (boolean) initial state of the participants' front camera RECIPIENT_DISPLAY_NAME: (String) custom display name/nickname for the recipient that will be displayed during the call

When this method is called in personal chat room, the active user will start and enter the call, and send a notification to the recipient, which will then receive an incoming call. The recipient will join the voice call once the incoming call is answered.

Participants will still be able to mute/unmute their microphone/camera during the call regardless of the START_WITH_AUDIO_MUTED and START_WITH_VIDEO_MUTED parameter.

Note: Initiating a call is currently only available in personal chat rooms.

Request Enable Notifications to User

In order for the recipient's device to receive incoming call from another device, the active user is required to enable notifications from the app. MeetTalk provides a helper method to direct the user to the app's Notification Settings page to request the user to enable the app's notifications to receive calls.

// Opens the app's general notification settings page
MeetTalk.openAppNotificationSettings(CONTEXT);

// Opens MeetTalk Incoming Call notification channel settings page
MeetTalk.openAppIncomingCallNotificationChannelSettings(CONTEXT);

Parameters CONTEXT: (Context) The app's context or current foreground activity required to open the notification settings page

Note: You can check a more complete implementation guide in the PowerTalk Android section.

Last updated