![]() |
Speedify SDK for Android 15.5.0
|
ispStats
. Currently only implemented for Starlink.setConnectionRateLimit(String,long,long)
accountCheck
/accountCreate
/accountPasswordChange
have been deprecated. Manage via SSO logins on my.speeedify.com instead.to
implementation 'com.speedify.speedifysdk:speedifysdk:15.0.0+'`AccountingData
now contains action
to provide hints for what action may be needed on an account.sendLogReport
to send logs to the directory server for automatic processingsetNetworkSharingAutoPairBehavior
controls how network sharing automatically pairs with other devices on the same account and/or teamOnServiceRestart(State,RestartReason)
- Use OnServiceRestart(State)
and/or OnLastDisconnectEvent(DisconnectEvent)
setNetworkSharingSameUserAutoPair
- Use setNetworkSharingAutoPairBehavior
StateTrackingSBR
- no longer necessary for tracking startup/disconnect reasonssendFeedback
.PAUSED
.sdkStateReceivers
and foregroundServiceReceivers
objects.setMaximumConnectRetry
.setMaximumTransportRetry
.initialize
the VPN permission prior to initializing the SDK for the first time. See Initializing the SDK.StreamStats
expanded to include health
, remoteIp
, remotePort
, protocol
setNetworkSharingSameUserAutoPair
.ConnectionStats
now contains sendBytes
and receiveBytes
.ErrorType
contains 3 new error types:
UpdateForegroundNotification
has had its arguments changed to receive a ServiceData
object with common SDK state information.createNotification(Context,Options)
and createBackgroundActivityNotification(Context,Options)
were added to simplify option passing for notifications. clear(Context,String,int)
was added to clear notifications created with a tag.OnLockedSetting(String,SettingsLockReason)
. Use OnSettingError(String,ErrorType,String)
NotificationHelper
createNotification and createBackgroundActivityNotification functions that do not take an Options
object.OnSettingError(String,ErrorType,String)
SpeedifySDK(Context,String)
via AutoConstruct.setIPLeakProtection
PrivacySettings.ipLeakProtection
GetUuid(Context)
.GetUuid(Context,UuidHandler)
.SpeedifyHandler.setServiceNotificationLaunchIntent
.SpeedifyHandler.setServiceNotificationIcon
.DEVICE_LIMIT
when an account has reached it's device limitsetLocalProxyGlobalDomainWatchlistEnable
) and reset all entries back to defaults (resetLocalProxyDomainWatchlist
).ulpReportIntervalSeconds
setting to represent the ULP reporting interval in seconds.setUlpReportIntervalSeconds
function.NONE
, for cases when there is nothing to report, to the disconnect reasons.refreshOAuthToken
to refresh token without triggering a login.IGNORELAST
will choose a server other than the last used server using the current selection setting.Version
function is now static and can be called without the SDK runningAUTOMATIC
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 underisp
- the discovered Internet Service Provider of the connectionprotocol
field on ConnectionStats
objects is now available on historic tunnel stats.setRequestToDisableDoH
.setLocalProxyPorts
, setFirewallPorts
, and setStreamingPorts
ConnectionStats
objects with a transport type of PROXY
.setPriorityOverflowThreshold
.setServiceNotificationKillswitchVibeEnabled
.SpeedifyHandler.setServiceNotificationLaunchIntent
.SpeedifyHandler.setServiceNotificationIcon
.SpeedifySDK.AutoConstruct
. No code required in Application.onCreate. Details in Initializing the SDK.ISpeedifyHandler
provided through the constructor or setHandler
. Objects implementing ISdkStateReceiver
may be registered via registerSdkStateReceiver
/unregisterSdkStateReceiver
. The main ISpeedifyHandler
remains the only object for customizing the foreground service notification.LogGeneration
, including filename, email address, and messaging, are configurable via resource strings. For more information, see SDK Strings.setIPLeakProtection
to match other platform SDKs.OnAdapterOverlimit(String,NetworkType,AdapterUsageData)
OnDirectorySettings
.OnDirectorySettings
.enableStatUpdates
instead.refreshDirectorySettings
.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.SpeedifyHandler
are now debounced, to avoid a flurry or reports when changing multiple settings in a row.OnLastDisconnectEvent
will now be called automatically after a disconnect event is recorded, instead of only after calling refreshLastDisconnectEvent
.UpdateForegroundNotification
to provide your own custom foreground notificaiton, you must now use a notification ID of SpeedifyHandler.SPEEDIFY_FOREGROUND_NOTIFICATION_ID
to replace the aforementioned temporary minimal foreground notification. The notification channel used is SpeedifyHandler.SPEEDIFY_FOREGROUND_CHANNEL_ID
.LogGeneration
is now thread-safe.SPEEDIFY_NOTIFICATION_STATE_CONNECTED_SERVER
string.StreamStats
field health
, giving an indication of how well the stream is performing.StreamingStats
fields:
ConnectionStats
fields:
startStreamTest
SpeedTestResultData
fields:
SpeedifySDK
constructor using ports are now deprecated. Use the port-less versions instead to avoid port conflicts.lossReceive
and lossSend
to be doubles.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
WebsocketAutoConfig
provides access to the local-only IP address and port sed for interprocess communication when not explicitly specifying a port.setLocalProxyIPv6
added.ILogCompleteCallback
handler in log generation calls may now be passed in separately from the Activity/Context.
OnLockedSetting(String,SettingsLockReason)
.AUTO
transport mode now automatically scales the number of tcp sockets it uses, providing better performance.SpeedifyHandler
from the background process (:vpnservice), in addition to the main process. To enable this, set EnableSDKHandlerFromBackground
to true prior to initializing the SDK.setLocalProxyPackages
and proxiedPackages
the member in setLocalProxyDomainWatchlist
.SpeedifySDK
object. Use GetUuid(Context)
/GetUuid(Context,UuidHandler)
startSpeedTest
to initiate a new test. Results are provided via OnSpeedTestResults
. Results of prior tests can be retrieved with refreshSpeedTestResults
.shareLogs
and generateLogs
now support absolute paths. If required, you must request write permission to this path prior to calling.totalBps
, sendBps
, and receiveBps
to be bits per second.sendEstimateMbps
and receiveEstimateMbps
to be megabits per second.mbpsDownBenefit
and mbpsUpBenefit
to specify megabits per second.com.speedify.speedifysdk.Types.TransportMode#MULTITCP
transport mode, using multiple TCP sockets over connections to increase bandwidth. com.speedify.speedifysdk.Types.ConnectionStats#numberOfSockets
shows how many sockets are in use.OVERLIMIT
state.StreamingSettings
. These can be set via setStreamingDomains
, setStreamingIPv4
, setStreamingIPv6
, and setStreamingPorts
. Use refreshStreamingSettings
to pull current settings.OVERQUOTA
disconnect reason.sendBps
and receiveBps
on to be in bits per second, matching totalBps
.setLanguage
. This takes a 2-character ISO language code. Supported languages include 'en', 'ar, 'de', 'es', 'fr', 'pt', 'ro', 'ru', 'tr', 'zh'.DNSTIMEOUT
and TUNNELTIMEOUT
.setNeverExitOnSwipe
. Services may be manually stopped with ForceExit
.logout
will now reset your connect method to CLOSEST
.setHeaderCompression
. Currently support extends to IPv4, UDP, and partial TCP (ports only).SpeedifySDK(Context,String)
SpeedifySDK(Context,String,ISpeedifyHandler)
port
setDirectoryGatewayURI
before logging in with loginOAuth
.setDaemonLogSettings
.generateLogs
. The resulting zip file will be placed in a folder named logs
under your application's files directory.eraseAllLogFiles
. Note that the current active log file is not erased.setDoNotStoreCredentials
. Note that you will have to manually call a login method on every new SDK daemon run.ILogCompleteCallback
's logComplete
callback now takes a boolean indicating successful log generation.loginOAuth
.OnDirectorySettings
.refreshDirectorySettings
.connectProxy
. All traffic through the VPN will be sent out via the Local Proxy over the default network interface.setESNIEnabled
if your custom directory server does not support ESNI.refreshLastDisconnectEvent
.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.enableStatUpdates
to specify wanted time periods.StreamingSessionStats
for each period.hasVPNPermission
to check if VPN permission has already been granted and initializeVPNPermission
to request it.enableStatUpdates
instead.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.StreamingSessionStats
available in SessionStats
setLocalProxyPorts
.setVendorUserData
can be used to provide a string of user data for an account.StreamingStats
fields: (these are now under StreamingSessionStats
as of 10.0)StreamStats
fields:groupId
downloadSpeed
averageUploadSpeed
averageDownloadSpeed
redundantModeSaves
speedModeSaves
name
LocalBroadcastHelper
- To remove dependency on a deprecated Google library, this has been rewritten from scratch and now works in conjunction with PooledBroadcastReceiver
. Messages are delivered on pooled background threads.register
- No longer takes a context. Takes a PooledBroadcastReceiver
instead of a BroadcastReceiver.unregister
- No longer takes a context. Takes a PooledBroadcastReceiver
instead of a BroadcastReceiver.setMode
with STREAMING
. Statistics on individual streams are available from refreshStreamingStats
, and are provided once per second when enabling enableConnectionStatUpdates.OnSessionStats
are now tracked over multiple time periods, including current session, last day, last week, last month, and total.ISpeedifyHandler
OnSessionStats
now passes in a SessionStatPeriods
object instead of a SessionStats
to accommodate stats over various time periods.setStartupConnect
. Use setConnectMethodAuto
/setConnectMethodCountry
/setConnectMethodCity
/setConnectMethodServer
to control how servers are chosen at boot.setKillswitch
and implement a boot handler to initialize the killswitch at device startup.setEnableDefaultRoute
can be used to disable Speedify from obtaining the default route and handling all Internet traffic.LocalProxyDomainWatchlistItem
watchedDomains
and proxiedDomains
lists.shareLogs
OnCaptivePortals
callbacks when captive portals are detected.setFirewallIPv6
. ICMP and other protocols are now also blockable by domain and IP.setLocalProxyDomainWatchlist
. When an attempt to access a watched domain is seen, OnLocalProxyDomainWatchlistHit
is triggered. setLocalProxyDomainWatchlistEnable
can then be used to enable that service's domains to be sent through the local proxy instead of the VPN.setLocalVendorSettings
for saving a custom JSON object for later consumption.OnServiceRestart
OnNewAdapter
OnAdapterOverlimit
setDirectoryDomain
resetDirectoryDomain
ConnectionStats
protocol
is now of type TransportMode
TransportMode
HTTPS
now serves the same purpose.setForwardPorts
to forward ports on a dedicated server to the client device.setExcludeDefaultPrivateIPRanges
can be set to false to allow private IP ranges to be routed over the tunnel.ConnectionStats
sendEstimateMbps
and receiveEstimateMbps
are now doublessetNonVPNApplications
OnServiceRestart
to stop this behavior.OnNewAdapter
now has a NetworkType
argument.OnConnectedServer
now sends a ServerInformationDetailed
object with more information on the connect server..setDirectoryDomain
resetDirectoryDomain
OnAdapterOverlimit
OnLoginError
OnConnectError
loginAutoAccount
setDNSServers
ConnectionStats
now shows download
and upload
speeds, as well as download
and upload
maximum speed estimates for connections.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.setOverflowThreshold
and overflowThreshold
have been updated to reflect this.SpeedifySDK.setReportingEncryptionKey
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.loginAutoAccount
. setUserUniqueID remains in place, and simply calls loginAutoAccount internally to preserve compatibility.com.speedify.speedifysdk.UuidProvider
- Obtain the device's unique ID.SpeedifySDK.setAdapterOverlimitRatelimit
- Control behavior of an adapter when it reaches it's data limit.repositories { ... maven { url 'https://maven.google.com' } }
OnLoginError(String,ErrorType)
: The default SpeedifyHandler implementation provides an OnLoginError(String) for compatibilityOnConnectError(String,ErrorType)
: The default SpeedifyHandler implementation provides an OnConnectError(String) for compatibility