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:
/**
* 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:
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.