|Please note that the Twilio Client Android SDK is superseded by the newer Twilio Programmable Voice Android SDK, which uses FCM push notifications for signaling incoming calls. Please see our announcement for background information on this change and consult the Programmable Voice SDK documentation for technical details.
- CLIENT-4104 Upgraded to Android Oreo from Nougat. Android CLIENT SDK runs TwilioClientService in the background. With Android 8.0 (API level 26) release, startService() method throws an IllegalStateException if an app is targeting Android 8.0. CLIENT-4104 fixes this crash.
- SDK versions prior to 1.2.21 will crash with an IllegalStateException when attempting to run context.startService() in the background if the app targets Android 26/Android 8.0 or above. For details on Android 8.0 behavior changes related to this issue, you can reference the section "Background execution limits" at https://developer.android.com/about/versions/oreo/android-8.0-changes.html.
- CLIENT-3545 - Changed default SIP port to 10194 from 5061. Sunset support of
- CLIENT-3074 - Fixed a
ConcurrentModificationException that was thrown when calling
Twilio.shutdown() with multiple
- CLIENT-2881 - Fixed an error where
CallSid would be null when the
Connection.onConnected callback was received for an outgoing call.
- CLIENT-2794 - Fixed JNI ClassLoader issues for runtime exceptions.
- CLIENT-2676 - Fixed an error where the log level would be incorrectly set if
Twilio.setLogLevel() was called before the SDK was initialized.
- CLIENT-2719 - Fixed an error where
Device.OnStartListening would be invoked while the
- CLIENT-1075 - Fixed a crash on a
Connection disconnect indicating that the
callSID is null.
- CLIENT-2675 - Client 1.2.15 no longer uses private symbols and is fully supported on Android N. Prior versions of Client on Android dynamically linked against private symbols. This behavior is no longer allowed on Android N, and will cause a
UnsatisfiedLinkError exception at runtime for your application.
Documentation on Android N Private Symbol Restrictions: here
- CLIENT-2573 - AudioManager needs to be in
AudioManager.MODE_IN_COMMUNICATION mode to avoid audio distortion when using speaker mode. This occurs on newer devices running Android Marshmallow and up. You must apply this change to the AudioManager in your application.
Example implementation using our Client quickstart: here
- CLIENT-2269 - The Client SDK is now distributed as an
.aar via jCenter. Support for
.jar and an unpacked binary have been deprecated.
To install the Client SDK library add the following configuration in your
We are deprecating support for
.jar and the unpacked binary in the
eclipse folder in the next release. They will no longer be provided after the next release. We are moving to
.aar, the standard packaging format for Android libraries and will be providing it through JCenter.
- CLIENT-2059 - The Client SDK now supports
- CLIENT-2530 - Fixed a connection error when creating a
Device without incoming capability.
- CLIENT-2555 - Fixed
Connection.getParameters() returning a null value for
- CLIENT-2430,2520 - Fixed an initialization crash.
- CLIENT-2103 - OpenSSL has been upgraded to 1.0.1s. This version satisfies recent warnings seen by publishers to the Google Play store.
- CLIENT-2321 - MIPS architecture support has been removed.
- CLIENT-2338 - In an application with
targetSDKVersion 23 or higher, the SDK will now fail to initialize (and log an error) if the user has not granted runtime microphone permissions.
- CLIENT-2027 - Resolved an
UnsatisfiedLinkError when running Android 6 on x86 devices/emulators due to text relocations.
- CLIENT-2104 - Fixed a sporadic
UnsatisfiedLinkError when attempting to load the Twilio library on older devices.
- CLIENT-2367 - The SDK no longer fires a
Device.OnStopListening event when the
PresenceEvent server disconnects.
- CLIENT-2325 -
Twilio.getVersion() now returns only
- CLIENT-2097 - Fixed a crash that occurred during a network connectivity change sequence.
- Fixed a build issue which caused the
1.2.9 version's combined
.jar file to include extraneous symbols, unnecessarily increasing the size of applications.
- UnsatisfiedLinkError when running Android 6 on x86 devices/emulators because of text relocations. We hope to have this issue resolved soon.
Twilio now packages
libtwilio-native.so for every supported architecture within
Android Studio users: Remove all
libtwilio-native.so libraries from your project and replace the existing
twilioclient-android.jar with the new combined
- Eclipse users: an uncombined version of the
twilioclient-android.jar has been provided in the
eclipse directory. Be sure to replace both the
libtwilio-native.so libraries and
twilioclient-android.jar file in your existing Eclipse project.
CLIENT-2160 - Fixed an issue where
ConnectionListener.onDisconnect() was not invoked when the remote client disconnected before a
Connection had been accepted or rejected.
CLIENT-2100 - Fixed
Device.connect() crash caused by "input is not valid Modified UTF-8".
- UnsatisfiedLinkError when running Android 6 on x86 devices/emulators because of text relocations.
- CLIENT-2014 - New API
setMetrics(boolean) added in
TwilioClient to enable/disable the collection and transmission to Twilio of call quality analytics. This feature is enabled by default.
- CLIENT-2042 - Replacement of HttpClient with HttpURLConnection in Quickstart applications.
- CLIENT-1888 - Added support for Extension Mechanisms for DNS (EDNS0) record types.
- CLIENT-1993,2000,2003 - Added support for Android 6.0; fixed crashes when releasing the Twilio Device and handling both incoming and outgoing calls.
- CLIENT-1916 - onStopListening callback is now always called when device is updated with a new capability token.
- CLIENT-1919 - Fixed a crash when passing null to Device.connect() for an optional parameter.
- CLIENT-1927 - Connection.getParameters() returns a Map of URL decoded values.
- CLIENT-1929, CLIENT-1930, CLIENT-1934, CLIENT-1938 - Fixed a crash caused by improper shutdown of TwilioClientService.
- Note: CLIENT-1938 fix invalidates CLIENT-1903 fix provided in 1.2.5. If service attribute
android:stopWithTask for TwilioClientService is set to true in the AndroidManifest.xml for TwilioClientService, the service will automatically be stopped by the system if the user removes a task that is rooted in one of the application's activities.
- CLIENT-1849, CLIENT-1851 - Extended SIP registration error handling.
- CLIENT-1893 - Log messages for SIP registration redirects are now logged at INFO level.
- CLIENT-1897 - Fixed a crash that occurred during a network connectivity change sequence.
- CLIENT-1903 - Fixed an issue where clients could remain registered and receive incoming calls after the user application is killed and restarted. To utilize this fix, service attribute
android:stopWithTask must be set to false in the AndroidManifest.xml for TwilioClientService.
- Note: The
android:targetSdkVersion has been changed to 15 to leverage additional functionality from the Android Service component,
android:minSdkVersion remains 8.
- CLIENT-1879 - onConnecting callback is now called only once after Device.connect().
- CLIENT-1881 - onStopListening callback is now called when device is updated with Outgoing-only token.
- CLIENT-1880 - onStartListening callback is now called when updated with valid capability token.
- CLIENT-1882 - SDK now receives presence events when subscribed.
- CLIENT-1853, CLIENT-1691 - Fixed a number of crashes occurred calling Twilio.shutdown().
- CLIENT-1699, CLIENT-1705 - Fixed a number of crashes that could occur when initial SIP request is sent to the server.
- CLIENT-1846, CLIENT-1869, CLIENT-1870 - Fixed a crash that occurred on network connectivity change.
- CLIENT-1847 - The SDK now fires OnStartListening callback after SIP registration completes.
- CLIENT-1706 - Moved HTTP GET request from the UI thread to Asynctask in MonkeyPhone example.
- MSDK-88 - Android SDK exposes its version.
- MSDK-113 - Added capability token validity check before making an outbound call.
- MSDK-307 - ConnectionListener.onConnecting() is now invoked on incoming connections.
- MSDK-389 - Copy params map passed to Device.connect() instead of modifying the user-supplied map.
- MSDK-475 - Eliminated issue with updating capability token after token expires.
- MSDK-476 - Fix rare registration failure with redirect.
- MSDK-482 - Suppress wildcard certificate warning.
- ASDK-8 - CallSid is now available for outgoing calls.
- MSDK-52 - Eliminated a rare crash when handling a 302 redirect response from Twilio.
- MSDK-79, MSDK-64, MSDK-66, MSDK-96 and MSDK-178 - Fixed a number of crashes that could occur when answering an incoming call.
- MSDK-89 - Fixed a crash that could occur when initializing a Device object with the incoming capability.
- MSDK-298 - The SDK now uses OpenSSL v1.0.1k
- MSDK-299 - Fixed a crash that would occur when caller hangs up right after initiating a call.
Initial 1.2 release.
Support for Twilio’s Global Low Latency Routing
Twilio Client for Android now takes advantage of Twilio’s Global Low Latency (GLL) routing to further improve call quality. Media for all Twilio Client calls is routed to the Twilio data center geographically nearest to the user, significantly reducing call latency.
Richer Debug Logging
We’ve made it easier to find and resolve issues in your Twilio Client Android application with detailed logging with a simple API call.
The level parameter values correspond to the levels provided by the Android SDK :
The SDK requires Android API level 9 and above. The SDK supports