Miscellaneous

Minimum Requirements

We officially support the 3 latest major Android versions. You can try older versions but there are no guarantees it will work as expected.

Running Sinch SDK on Android KitKat

The minimum API level on which Android Sinch SDK can run is 19 (Android KitKat). Because this version is the last one without default built-in support for TLSv1.1 and TLSv1.2 (see Default configuration for different Android versions), which is required by the ocra.api.sinch.com endpoint, if you want to run the SDK on that specific API you have to patch the security provider:

Copy
Copied
/**
 * Patches default security provider. This method should only be used on KitKat devicec
 * @param context
 */
public static void patchProvider(Context context){
    try {
        SSLContext.getInstance("TLSv1.2");
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    try {
        ProviderInstaller.installIfNeeded(mContext.getApplicationContext());
    } catch (GooglePlayServicesRepairableException e) {
        e.printStackTrace();
    } catch (GooglePlayServicesNotAvailableException e) {
        e.printStackTrace();
    }
}
Note:

Google Play services must be available on the device.

Note on Sinch SDK Size

The Sinch Android SDK aar library includes a common Java library of approximately 900 KB, and four binaries containing the architectures armv7, arm64, x86, and x86_64, which size varies from 6.2 MB for armv7 to 11.1 MB for x86_64, with the armv64 having 10.2 MB in size. Combined and compressed in the aar it yields over 17 MB in size. To reduce the footprint, it's highly recommended to use the Android App Bundle publishing format (see https://developer.android.com/platform/technology/app-bundle). In that case, only the common Java code and target architecture binary will be included in the final package.

As an example, the rough estimation of typical arm64 distribution will have 900 KB + 10.2 MB yielding slightly over 11 MB before compression (which is hard to estimate, but can be assumed within 1x-2x range). You can always check your app download and install size in the Google Play Console (https://support.google.com/googleplay/android-developer/answer/9302563)

Restrictions on User IDs

User IDs must not be longer than 255 bytes, must only contain URL-safe characters, and be restricted to the following character set:

Copy
Copied
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghjiklmnopqrstuvwxyz0123456789-_=

If you need to use User IDs containing characters outside the allowed set above, you could consider base64-encoding the raw User IDs using a URL-safe base64 alphabet as described in https://tools.ietf.org/html/rfc4648#section-5). Note how the allowed character set overlaps with the URL-safe base64 alphabet, but doesn't allow characters in the non-URL-safe alphabet. For example, / (forward slash) and + (plus sign).

Encryption Export Regulations

Please check the Summary of U.S. Export Controls Applicable to Commercial Encryption Products and ensure that the application is registered for the Encryption Regulations, if applicable. It can be found under this link.

Local Database File

Sinch SDK needs a local database file to operate properly. It's located in the local application storage - sinch/db/ subfolder relative to the context.getFilesDir(). The application must not delete this folder.

Statistics

The Sinch SDK client uploads statistics to the Sinch servers at the end of a call, a call failure, or a similar event. The statistics are used for the monitoring of network status, call quality, and other aspects regarding the general quality of the service.

Some of the information is not anonymous and may be associated with the User ID call participants.

The statistics upload is done by the client in the background.

Third-Party libraries and Copyright Notices

All Third Party Libraries and Copyright notices can be found under this link.

Was this page helpful?