Twilio Client Android SDK Changes

IMPORTANT
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.

Changelog

1.2.21 (Oct. 27, 2017)

Bug Fixes
  • 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.
Known Issues
  • 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.

1.2.20 (May. 15, 2017)

Bug Fixes
  • CLIENT-3545 - Changed default SIP port to 10194 from 5061. Sunset support of armeabi.

1.2.19 (Nov. 21, 2016)

Bug Fixes
  • CLIENT-3074 - Fixed a ConcurrentModificationException that was thrown when calling Twilio.shutdown() with multiple devices.

1.2.18 (Sep. 8, 2016)

Bug Fixes
  • CLIENT-2881 - Fixed an error where CallSid would be null when the Connection.onConnected callback was received for an outgoing call.

1.2.17 (Aug. 4, 2016)

Bug Fixes
  • CLIENT-2794 - Fixed JNI ClassLoader issues for runtime exceptions.

1.2.16 (July 20, 2016)

Bug Fixes
  • 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 Device.State was OFFLINE.
  • CLIENT-1075 - Fixed a crash on a Connection disconnect indicating that the callSID is null.

1.2.15 (July 8, 2016)

Bug Fixes
  • 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

1.2.14 (June 16, 2016)

New Features
  • 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 build.gradle file:

allprojects {
  repositories {
     jcenter()
  }
}

dependencies {
  compile 'com.twilio:client-android:1.2.14'
}

1.2.13 (May 13, 2016)

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.

New Features
  • CLIENT-2059 - The Client SDK now supports arm64-v8a and x86_64 architectures.
Bug Fixes
  • CLIENT-2530 - Fixed a connection error when creating a Device without incoming capability.
  • CLIENT-2555 - Fixed Connection.getParameters() returning a null value for IncomingParameterCallSIDKey

1.2.12 (Apr. 22, 2016)

Bug Fixes
  • CLIENT-2430,2520 - Fixed an initialization crash.

1.2.11 (Apr. 14, 2016)

New Features
  • 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.
Bug Fixes
  • 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 Major.Minor.Patch.

1.2.10 (Mar. 16, 2016)

Bug Fixes
  • 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.
Known Issues
  • UnsatisfiedLinkError when running Android 6 on x86 devices/emulators because of text relocations. We hope to have this issue resolved soon.

1.2.9 (Feb. 25, 2016)

New Features
  • Twilio now packages libtwilio-native.so for every supported architecture within twilioclient-android.jar:

  • Android Studio users: Remove all libtwilio-native.so libraries from your project and replace the existing twilioclient-android.jar with the new combined twilioclient-android.jar file.

  • Eclipse users: an uncombined version of the libtwilio-native.so and 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.
Bug Fixes
  • 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".

Known Issues
  • UnsatisfiedLinkError when running Android 6 on x86 devices/emulators because of text relocations.

1.2.8 (Nov. 10, 2015)

New Features
  • 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.
Bug Fixes
  • CLIENT-2042 - Replacement of HttpClient with HttpURLConnection in Quickstart applications.

1.2.7 (Oct. 9, 2015)

Bug Fixes
  • 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.

1.2.6 (Aug. 17, 2015)

Bug Fixes
  • 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.

1.2.5 (July 27, 2015)

Bug Fixes
  • 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.

1.2.4 (June 25, 2015)

Bug Fixes
  • 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.

1.2.3 (June 11, 2015)

Bug Fixes
  • 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.

1.2.2 (Mar. 19, 2015)

New Features
  • MSDK-88 - Android SDK exposes its version.
Bug Fixes
  • 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.

1.2.1 (Jan. 29, 2015)

Bug Fixes
  • 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.

1.2.0 (Dec. 18, 2014)

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.

Twilio.setLogLevel(int level);

The level parameter values correspond to the levels provided by the Android SDK : Log.ASSERT,Log.DEBUG, Log.ERROR, Log.INFO, Log.VERBOSE,Log.WARN.

System Requirements

The SDK requires Android API level 9 and above. The SDK supports x86, armeabi-v7a, x86_64, and arm64-v8a architectures.

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.