Speedify SDK for Android  15.0.0
What's New

Speedify SDK for Android 15.0

  • The Speedify SDK now uses proper semver-formatted version numbers. Update your dependency definitions to remove the final period, ie: from ‘implementation 'com.speedify.speedifysdk:speedifysdk:14.9.4.+’toimplementation 'com.speedify.speedifysdk:speedifysdk:15.0.0+'`

Speedify SDK for Android 14.9.4

  • No new features. This is a performance and stability release.

Speedify SDK for Android 14.9.3

  • All Android versions now require VPN permission before starting the SDK

Speedify SDK for Android 14.9.2

  • Improved network change detection for USB network adapters
  • Remove use of select() to prevent crashes when opening a large number of sockets

Speedify SDK for Android 14.9.1

Speedify SDK for Android 14.9

  • No new features. This is a performance and stability release.

Speedify SDK for Android 14.8.8

  • No new features. This is a stability release.

Speedify SDK for Android 14.8.7

  • No new features. This is a stability release.

Speedify SDK for Android 14.8.6

  • New API sendLogReport to send logs to the directory server for automatic processing

Speedify SDK for Android 14.8.5

  • No new features. This is a stability release.

Speedify SDK for Android 14.8.1

  • No new features. This is a stability release.

Speedify SDK for Android 14.8

Speedify SDK for Android 14.7

Speedify SDK for Android 14.6.1

  • No new features. This is a stability release.

Speedify SDK for Android 14.6

Speedify SDK for Android 14.5.3

  • No new features. This is a stability release.

Speedify SDK for Android 14.5.2

  • No new features. This is a stability release.

Speedify SDK for Android 14.5.1

  • No new features. This is a stability release.

Speedify SDK for Android 14.5

  • No new features. This is a performance release.

Speedify SDK for Android 14.4

  • New languages - Japanese, Italian, Korean, Polish, Ukrainian, Swedish, Norwegian
  • Stability improvements

Speedify SDK for Android 14.3.2

  • ESNI support was deprecated.

Speedify SDK for Android 14.3.1

  • This is a performance release.

Speedify SDK for Android 14.3

  • This is a performance release.
  • The SDK now uses the proper FOREGROUND_SERVICE_SYSTEM_EXEMPTED permission on Android 14+ for VPNs that use a foreground notification. You must initialize the VPN permission prior to initializing the SDK for the first time. See Initializing the SDK.

Speedify SDK for Android 14.2

Speedify SDK for Android 14.1.2

  • No new features. This is a stability release.

Speedify SDK for Android 14.1.1

  • No new features. This is a stability release.

Speedify SDK for Android 14.1

  • No new features. This is a stability release.

Speedify SDK for Android 14.0.1

  • No new features. This is a stability release.

Speedify SDK for Android 14.0

Speedify SDK for Android 13.3.1

  • No new features. This is a stability release.

Speedify SDK for Android 13.3

  • New Error type DEVICE_LIMIT when an account has reached it's device limit

Speedify SDK for Android 13.2

Speedify SDK for Android 13.1.1

  • No new features. This is a stability release.

Speedify SDK for Android 13.1

  • The Speedify SDK now targets Android SDK 33.
  • Many settings are now reset when a logout() is issued.

Speedify SDK for Android 13.0.3

  • No new features. This is a stability release.

Speedify SDK for Android 13.0.2

  • No new features. This is a stability release.

Speedify SDK for Android 13.0.1

  • No new features. This is a stability release.

Speedify SDK for Android 13.0

  • We now use AES256 for encryption, instead of AES128.

Speedify SDK for Android 12.8

Speedify SDK for Android 12.7

  • Added NONE, for cases when there is nothing to report, to the disconnect reasons.
  • Added refreshOAuthToken to refresh token without triggering a login.

Speedify SDK for Android 12.6

  • New connect method IGNORELAST will choose a server other than the last used server using the current selection setting.

Speedify SDK for Android 12.5.1

  • Support for Safebrowsing dynamic library. Safebrowsing functions were removed from the Speedify SDK API and added to a separate Cujo SDK.

Speedify SDK for Android 12.5.0

  • The Version function is now static and can be called without the SDK running

Speedify SDK for Android 12.4.1

Speedify SDK for Android 12.4

  • Adapters now support AUTOMATIC connection priorities, where Speedify will manage the priority based on the dynamically discovered connection type. This feature is enabled via enableAutomaticConnectionPriority.
  • AdapterData has 2 new fields:
    • workingPriority - the priority the adapter is functioning under
    • isp - the discovered Internet Service Provider of the connection

Speedify SDK for Android 12.3

Speedify SDK for Android 12.2.1

  • No new features. This is a stability release.

Speedify SDK for Android 12.2

Speedify SDK for Android 12.1.1

  • No new features. This is a stability release.

Speedify SDK for Android 12.1

  • Required and optional permissions for the Speedify SDK are now listed here
  • Fixes for ICMP traffic in proxy mode
  • Teams settings now support proxy mode

Speedify SDK for Android 12.0

Speedify SDK for Android 11.9.4

  • No new features. This is a stability release.

Speedify SDK for Android 11.9.2

  • Android Lollipop and Marshmallow are no longer supported. Android Nougat is now the minimum supported version.
  • Many changes went in to make it easier to use the Speedify SDK for Android, and with less code. Best practices from older SDK are still compatible.
  • Deprecations
    • SpeedifySDK.setAllowTunnelBypass has been deprecated in favor of setIPLeakProtection to match other platform SDKs.
  • Deprecation removals - Methods marked as Deprecated prior to 11.0 have been removed

Speedify SDK for Android 11.9

  • No new features. This is a stability release.

Speedify SDK for Android 11.8

  • SDK now takes an app name parameter to identify your app on the server side. This may be set manually via setAppName or automatically via the name parameter of the SpeedifySDK constructor. If setting manually, this must be called before any login method.
  • SpeedifySDK, SpeedifyHandler, and ISpeedifyHandler now use @Nullable and @NonNull annotations on method parameters and returns.
  • The default service notification no longer uses a MessagingStyle style on Xiaomi devices. Xiaomi has fixed their MIUI bug that lead to crashes.

Speedify SDK for Android 11.7

Speedify SDK for Android 11.6

  • Full compatibility with Android 12 (S). Speedify SDK's targetSdkVersion is now 31.
  • LogGeneration is now thread-safe.
  • Separate default notification string for Connected state with server text to new SPEEDIFY_NOTIFICATION_STATE_CONNECTED_SERVER string.

Speedify SDK for Android 11.5.1

  • No new features. This is a stability release.

Speedify SDK for Android 11.5

Speedify SDK for Android 11.4

  • Compatibility with devices running Android 12.
  • Fix type on lossReceive and lossSend to be doubles.

Speedify SDK for Android 11.3

  • When using a local-proxy-only VPN by calling connectProxy and using default DNS server settings, or setting an empty DNS server list via setDNSServers with an empty list, the DNS servers of the other physical connections will be used instead of setting an explicit DNS server over the VPN connection.
  • DisconnectEvent objects have 2 new fields: sessionEnd and sessionLength

Speedify SDK for Android 11.2.3

  • No new features. This is a stability release.

Speedify SDK for Android 11.2.2

  • WebsocketAutoConfig provides access to the local-only IP address and port sed for interprocess communication when not explicitly specifying a port.

Speedify SDK for Android 11.2.1

  • No new features. This is a stability release.

Speedify SDK for Android 11.2

Speedify SDK for Android 11.1.1

  • The default service notification now uses a MessagingStyle style on Xiaomi devices running Nougat and higher to avoid a crash in MIUI.

Speedify SDK for Android 11.1

Speedify SDK for Android 11.0.1

  • No new features. This is a stability release.

Speedify SDK for Android 11.0

  • New simple speed test. This runs an iPerf3 speed test for 10 seconds in both directions over the VPN tunnel. Use startSpeedTest to initiate a new test. Results are provided via OnSpeedTestResults. Results of prior tests can be retrieved with refreshSpeedTestResults.
  • The fileName arguments for shareLogs and generateLogs now support absolute paths. If required, you must request write permission to this path prior to calling.

Speedify SDK for Android 10.9.5

Speedify SDK for Android 10.9.1

  • No new features. This is a stability release.

Speedify SDK for Android 10.9

Speedify SDK for Android 10.8.1

  • No new features. This is a stability release.

Speedify SDK for Android 10.8

  • The language used for error messages can now be set with setLanguage. This takes a 2-character ISO language code. Supported languages include 'en', 'ar, 'de', 'es', 'fr', 'pt', 'ro', 'ru', 'tr', 'zh'.

Speedify SDK for Android 10.7.1

  • No new features. This is a stability release.

Speedify SDK for Android 10.7

  • Header compression now defaults to on.
  • Disconnect Reasons have been expanded to include DNSTIMEOUT and TUNNELTIMEOUT.
  • The default behavior of removing running services on task swipe when disconnect may be stopped via setNeverExitOnSwipe. Services may be manually stopped with ForceExit.

Speedify SDK for Android 10.6

  • Calling logout will now reset your connect method to CLOSEST.
  • Header compression can be enabled via setHeaderCompression. Currently support extends to IPv4, UDP, and partial TCP (ports only).
  • New portless SpeedifySDK constructor methods
    • SpeedifySDK(Context,String)
    • SpeedifySDK(Context,String,ISpeedifyHandler)
    • The above SDK constructors, lacking the port argument, allows the Speedify SDK to automatically choose an internal endpoint based on the installed package's uid that is unique from any other application using the Speedify SDK.
    • Android Work Profile and Samsung Secure Folder are now supported with no additional work when using one of the above SDK constructors.
    • The SDK constructor calls with port arguments will continue to construct the internal endpoint at 127.0.0.1:port

Speedify SDK for Android 10.5

  • Speedify SDK now supports a centralized OAuth gateway for authentication. Setup the gateway URI with setDirectoryGatewayURI before logging in with loginOAuth.
  • Log settings in the daemon service are now configurable through setDaemonLogSettings.
  • You can now generate a log zip without triggering a share dialog with generateLogs. The resulting zip file will be placed in a folder named logs under your application's files directory.
  • Log files and generated log zips may be deleted with eraseAllLogFiles. Note that the current active log file is not erased.
  • Credentials, like oauth tokens and passwords, can be restricted from being saved locally using setDoNotStoreCredentials. Note that you will have to manually call a login method on every new SDK daemon run.
  • API Compatibility Changes
  • Deprecations
    • OnDirectoryDomain(String,boolean) has been deprecated. Use OnDirectorySettings.
    • refreshDirectoryDomain has been deprecated. Use refreshDirectorySettings.
    • setCrashReporting/crashReports - Crash reporting has been removed from the SDK for several releases.

Speedify SDK for Android 10.4.1

  • No new features. This is a stability release.

Speedify SDK for Android 10.4

  • Proxy Mode - You may not start a local-proxy-only VPN by calling connectProxy. All traffic through the VPN will be sent out via the Local Proxy over the default network interface.
  • You can now disable ESNI in directory and speed server requests with setESNIEnabled if your custom directory server does not support ESNI.
  • Android Always-On VPN support may now be disabled. See Disable Always-On Support for details.
  • Disconnect Events
    • To track reboot and upgrade disconnect events, see Tracking Disconnect Events.
    • The reason for the last disconnect may be queried via refreshLastDisconnectEvent.
  • Deprecations
    • OnServiceRestart(State,boolean) has been deprecated. Use OnServiceRestart(State,RestartReason)
    • OnDirectoryDomain(String) has been deprecated. Use OnDirectoryDomain(String,boolean)

Speedify SDK for Android 10.3.1

  • No new features. This is a stability and performance release.

Speedify SDK for Android 10.3

  • No new features. This is a stability and performance release.

Speedify SDK for Android 10.2

  • API Compatibility Changes
    • Types.ProxyMatchMode
    • Types.FirewallMode

Speedify SDK for Android 10.1

  • The VPN's metered status now reflects underlying interfaces used.

Speedify SDK for Android 10.0.1

  • No new features. This is a stability and performance release.

Speedify SDK for Android 10.0

  • New Session Stats API
    • The named time period members (current, day, week, month, total) are removed in favor of custom time periods. The periods member now contains a list of all requested time periods. Use the period member of SessionStats to identify the period the stats are for.
    • Use enableStatUpdates to specify wanted time periods.
  • Session Stats now include StreamingSessionStats for each period.
  • Create VPN Profile without starting VPN
    • You can now create the Android VPN Profile without connecting to a speed server first. Use hasVPNPermission to check if VPN permission has already been granted and initializeVPNPermission to request it.
  • API Compatibility Changes
    • SpeedifySDK
    • SessionStatPeriods
      • The named time period members (current, day, week, month, total) are removed in favor of custom time periods. The periods member now contains a list of all requested time periods. Use the period member of SessionStats to identify the period the stats are for.
    • StreamingStats
  • Deprecation removals - Longtime methods marked as Deprecated have been removed
    • SpeedifyHandler
      • The single stats object version of OnSessionStats has been removed.
    • Types.AdapterData
      • connectedNetworkBSSID has been removed.

Speedify SDK for Android 9.9

Speedify SDK for Android 9.8

  • Multicast Support - Receiving multicast packets while the VPN is connected has been restricted by the VPN not allowing apps to send/receive traffic around the VPN. This is the default VPN behavior on Android, and is the most secure setting. If you need multicast support, you can allow apps to communicate around the VPN by setting SpeedifySDK.setAllowTunnelBypass. Note that this opens up all apps to be able to create sockets that bypass the VPN, thus decreasing security.
  • setVendorUserData can be used to provide a string of user data for an account.
  • New StreamingStats fields: (these are now under StreamingSessionStats as of 10.0)
    • totalRedundantModeSaves
    • totalSpeedModeSaves
    • totalStreams
    • uniqueSaves
  • New StreamStats fields:
  • API Compatibility Changes

Speedify SDK for Android 9.7

  • No new features. This is a stability and performance release.

Speedify SDK for Android 9.6

  • Speedify has a new Streaming Mode to better support video streamers. This can be set via setMode with STREAMING. Statistics on individual streams are available from refreshStreamingStats, and are provided once per second when enabling enableConnectionStatUpdates.

Speedify SDK for Android 9.5

Speedify SDK for Android 9.4

Speedify SDK for Android 9.3

Speedify SDK for Android 9.2

Speedify SDK for Android 9.0

Speedify SDK for Android 8.2

  • Port forwarding has been added. Call setForwardPorts to forward ports on a dedicated server to the client device.

Speedify SDK for Android 8.1

  • Speedify SDK now depends on Android SDK 29 (Q) for compatibility with Android 10's new security changes.
  • The Android SDK (compileSdkVersion) and build tools versions used for Speedify SDK are now 29 and 29.0.0, respectively, and targetSdkVersion is also 29.
  • CrashlyticsIntegrationEnabled now defaults to false
  • ISpeedifyHandler.OnServiceInternetPermissionError has been removed.
  • WifiHelper has been removed.

Speedify SDK for Android 8.0.2

Speedify SDK for Android 8.0

Speedify SDK for Android 7.8.2

  • App Usage reports have been removed. This removes the following APIs:
    • SpeedifySDK
      • refreshAppUsage
    • ISpeedifyHandler
      • OnAppUsage
    • Types
      • AppUsage

Speedify SDK for Android 7.6.1

Speedify SDK for Android 7.5

Speedify SDK for Android 7.4

Speedify SDK for Android 7.2.4

  • The Android Support library is now using AndroidX 1.0.0 and Play Services is now 17.1.2. Any dependencies in your own app should be updated to those versions as well to avoid conflicts between different versions of the Google libraries.

Speedify SDK for Android 7.2

  • The Android SDK (compileSdkVersion) and build tools versions used for Speedify SDK are now 28 and 28.0.2, respectively, and targetSdkVersion is also 28.
  • The Google libraries the SDK depends on have been updated to Support 28.0.0 and Play Services 16.0.0. Any dependencies in your own app should be updated to those versions as well to avoid conflicts between different versions of the Google libraries.
  • Android SDK 28 when running on Android 9 (Pie) disables all cleartext traffic (unsecured, ie: HTTP, WS) by default. As a result, Speedify SDK now specifies a default networkSecurityConfig for the application which disabled all cleartext traffic except that which goes to 127.0.0.1. If you need to enable more cleartext traffic, provide your own networkSecurityConfig that also allows cleartext traffic to 127.0.0.1.

Speedify SDK for Android 7.1.3

  • Add the 'google()' repository to your 'allprojects' dependencies in your project's build.gradle

Speedify SDK for Android 7.0

  • ConnectionStats now shows download and upload speeds, as well as download and upload maximum speed estimates for connections.
  • The Android SDK (compileSdkVersion) and build tools versions used for Speedify SDK are now 27 and 27.0.3, respectively, and targetSdkVersion is also 27.
  • The Google libraries the SDK depends on have been updated to Support 27.0.2 and Play Services 15.0.1. Any dependencies in your own app should be updated to those versions as well to avoid conflicts between different versions of the Google libraries.

Speedify SDK for Android 6.3.6

  • API Compatibility Changes
    • SpeedifySDK
      • SpeedifySDK.setOptimizationReporting has been removed.

Speedify SDK for Android 6.3.4

  • com.speedify.speedifysdk.SpeedifySDK#loginOAuth - When using your own directory server that supports it, OAuth access tokens can be used to authenticate a user. It is the application's responsibility to refresh their access token if a login or connect error of type TOKEN_EXPIRED is returned.
  • API Compatibility Changes
    • SpeedifySDK
      • Previous SDK version incorrectly described the overlfow threshold as being in bits per second. This is actually in megabits per second. The documentation on setOverflowThreshold and overflowThreshold have been updated to reflect this.

Speedify SDK for Android 6.3

  • Crash and optimization reporting can be controlled via SpeedifySDK.setCrashReporting and SpeedifySDK.setOptimizationReporting
  • Encryption key used on optimization reports can be set via SpeedifySDK.setReportingEncryptionKey

Speedify SDK for Android 6.2

  • Log files can be generated via adb by running the following command with your APK's package name : adb shell am start -a your.package.name.speedifysdk.sharelogs

Speedify SDK for Android 6.1

  • com.speedify.speedifysdk.LogGeneration - Creates a zip file of all Speedify SDK logs and shares it via an Android Share dialog.
  • com.speedify.speedifysdk.NotificationHelper - Manages notifications and their associated channels.
  • SpeedifySDK.loginAutoAccount - Log in with an automatically generated account. This takes over for setUserUniqueID.
  • AccountingData / OnAccountingData - Obtain information about the account being used.
  • Application Stats : Speedify SDK tracks data usage by app. Call refreshAppUsage enable application stats reports via OnAppUsage reports.
  • Android KitKat (4.4) is no longer supported. The minimum supported Android version is now Lollipop (5.0). As such, minSdkVersion in your build.gradle needs to be atleast 21
  • The Android SDK (compileSdkVersion) and build tools versions used for Speedify SDK are now 26 and 26.0.2, respectively, and targetSdkVersion is also 26.
  • The Google libraries the SDK depends on have been updated to Support 26.1.0 and Play Services 11.8.0. Any dependencies in your own app should be updated to those versions as well to avoid conflicts between different versions of the Google libraries.
  • If you were previously providing your own UpdateForegroundNotification implementation, note that on Oreo and newer it is now required to call service.startForeground to show a foreground notification. Failing to do this will cause the service to be killed by Android.
  • API Compatibility Changes
    • SpeedifySDK
      • SpeedifySDK.setUserUniqueID has been deprecated in favor of loginAutoAccount. setUserUniqueID remains in place, and simply calls loginAutoAccount internally to preserve compatibility.

Speedify SDK for Android 6.0