Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Sync SDK for Android

Latest release

The latest release of the Sync SDK for Android is v0.7.2, published on Bintray.

Version History & Changelog

Links are provided to specific patch versions here. We don't recommend using these links unless you have a specific need for a certain patch of a release.

Sync SDK for Android v0.7.2 (May 23, 2018)


  • Improve privacy compliance: by default use log level SILENT to not output anything from SDK by default. Switch to higher debug level using SyncClient.setLogLevel() to receive log messages.

Sync SDK for Android v0.7.1 (March 2, 2018)


  • Observer interfaces will no longer receive onErrorOccurred events when a failure to open Document, List, Map or Stream occurs. The SuccessListener for such operations is the best way to check for success or failure on open/creation.
  • Resolved issue with connection state listener, where onConnectionStateChanged event was not called on the user thread.
  • Resolved issue with SuccessListeners where events for openDocument, openMap, openList, openStream were not called on the user thread.
  • Resolved issue where remote update events may not be received after the same object got opened multiple times concurrently.

Sync SDK for Android v0.7.0 (February 15, 2018)


Synopsis of enhancements:

  • FlowId has been deprecated in favor of passing the resulting object to the listeners now, where previously arguments to listeners were Void.
  • The distinction between remote (for remotely initiated operations) and result (for locally initiated operations) has been transitioned to EventContext's isLocal() flag. The callback interfaces are thus simplified, by combining onResultXYZ and onRemoteXYZ events under the same method.
  • Documents, Lists (and their items), Maps (and their items) and Streams may now all have an optional max time to live specified. This number is expressed in seconds and is relative to when the TTL is set. After the TTL expires, the object will be destroyed on the backend in the near future. Options has been expanded to allow specifying a TTL during object creation (this property is ignored when opening preexisting objects.) The Metadata classes taken as a parameter for some methods on Document, List and Map are optional and can be specified as null.

Migration tips:

FlowId has been removed globally; most methods that previously accepted a flowID now also accept metadata which can be null today if you are not specifying a TTL.

Most observer methods have changed signature. The individual remote and local observer methods have been combined into a single observer method for operations. Observers which previously received only an index or key will now also receive the full value. Most observer methods now also provide a EventContext object which will indicate whether the operation was locally or remotely initiated.

Update squashing:

Individual local operations will continue to return the status of each operation via their SuccessListener interface but updates sent to the server may be batched for efficiency. This means remote clients may not see every state update performed individually, but will instead see updates with the object's final updated state.

If you require updates to be treated as individual operations for purposes of notifying remote clients, it is recommended you schedule subsequent updates to occur after the completion of each operation.

Other enhancements and bugfixes:

  • Enabled returning null from mutator functions, gracefully abandoning data change operations.
  • Added SDK version logging on startup, with "Twilio Sync SDK version {VERSION}" text.
  • Added SyncClient.setLogLevel() method to configure the SDK log level for troubleshooting purposes.
  • Fixed a race condition with an early arriving collection item remote update events.
  • Fixed support for multicasting events to observers attached to de-duplicated instances of objects, i.e. where the same object SID is opened multiple times.
  • Provided a fix against crash on Android Oreo.
  • Listeners added via SyncClient.setConnectionStateListener() will now receive callbacks in the correct thread.

Sync SDK for Android v0.6.3 (February 1, 2018)


  • Updated internal certificate store for upcoming certificate authority changes.

Sync SDK for Android v0.6.2 (January 9, 2018)


  • Optimized SDK speed
  • Optimized SDK size
  • Improved SDK stability

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.

Loading Code Sample...