Enable Chat Features

Please follow the following steps to enable TapTalk.io's chat features, such as contact sync and sending media, document, and location messages.

Add Permissions

Some of TapTalk.io's chat feature may require permissions to be added to your app. To do so, open AndroidManifest.xml file in your project and add the following permissions under the <manifest> tag if they are not yet present:

AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="your.package.name">

    <!--Permission for contact sync-->
    <uses-permission android:name="android.permission.READ_CONTACTS" />

    <!--Permission for media messages-->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!--Permission for location messages-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <!--Permission for voice messages-->
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    
    ...
    
</manifest>

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);

Starting from version 2.16.0, location attachment will be enabled by default even when Google Places API Key is not provided, but location search will be hidden. To disable location attachment, you may call:

TapUI.getInstance().setLocationAttachmentEnabled(false);

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>

Last updated