Mobile SDK Release - 10112022
Android Native Libraries Released - October 11, 2022
Android Full Library v1.14.5
Android Aggregator Library v1.14.5
Android LifeScan OneTouch Library v1.14.5
Android Native Changes
Google Fit
The SDK now reads only the Summary/Routine data from
DataTypes
that the user has granted permission to.Google Fit Mini App updated to fetch 30 days of historical step data after requesting permissions for the first time.
Also, review the changes from Android v1.14.4, which include Android 13 support.
React Native Wrappers Released - October 11, 2022
React Native Android/iOS Aggregator Wrapper v1.4.1
React Native Changes
General
Bundled native SDKs upgraded to:
iOS v1.14.1
Android 1.14.5
Module libraries built with XCode 14 and the iOS 16 SDK and tested against an iPhone running iOS 16
Healthkit
React Native wrapper now supports iOS 15 and up
Added support for HealthKit workout types added in iOS 13 - 16.
Google Fit
Now only reads Summary/Routine data from
DataTypes
that have been granted permission
Samsung Health
Switched to using static ID for Android SHealth notification channel name to avoid multiple channels showing up in notification settings
Cordova Wrappers Released - October 11, 2022
Cordova Android/iOS Full Wrapper v1.14.1
Cordova Android/iOS Aggregator Wrapper v1.14.1
Cordova Changes
General
Bundled native SDKs upgraded to:
iOS v1.14.1
Android 1.14.5
Rename iOS dictionary key from "recordType" to "record_type"
Core
VLDUser credentials (validicUserID, organizationID, accessToken) must now be non-empty strings. If an empty string (or nil) is used for any of those properties,Â
-startSessionWithUser:
 will throw an exception. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.Implemented user validation against the Validic API. User credentials are checked whenÂ
-startSessionWithUser:
 is called, and any user session started with invalid or unknown credentials will trigger a call toÂ[[VLDSession sharedSession] endSession]
.Any 401 Unauthorized response from the Validic API will automatically trigger a call toÂ
[[VLDSession sharedSession] endSession]
.Added a default user session. Accessible viaÂ
[VLDUser defaultUser]
, this user session can be initialized to perform foreground Bluetooth and VitalSnap reads only while the app is offline. This feature is intended to be used with the Full SDK package when valid Validic user session credentials are unavailable/unknown.If your app always has access to a valid set of user credentials and always initializes the SDK with a valid set of user credentials, then no changes are needed.
The recommended SDK implementation is to always provision users on the Validic server then initialize the SDK with valid session credentials for the user. Therefore, use of the default user is not common and its use should be limited to instances where you are unable to retrieve valid session credentials and you need to perform a foreground operation (Bluetooth pair, Bluetooth foreground read, or VitalSnap read).
Some operations will not function with the default user. SDK operations that require a server-side user will not function while the SDK is initialized with the default user. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.
If you need assistance adjusting your implementation of the SDK to account for these changes, please reach out to the Validic support team at support@validic.com.
Deprecated theÂ
VLDLogging
 class log property used for masking debug log output. Please useÂlogMask
 instead.Set timeout for requests to 10 seconds.
Bluetooth
Added generic support for pulse oximeters that follow the Bluetooth standard for Spot Check measurements.
Added support for ChoiceMMed pulse oximeter MD300CI218 (peripheral 45).
Added
InvalidUserException
as thecause
for aValidicBluetoothException
when attempting to execute an operation with anull
user or a user with credentials that cannot be used when performing an API request.BluetoothPeripheral
properties returned fromgetPeripheral
are nowcamelCase
instead ofPascalCase
OCR
OCRPeripheral
properties returned fromgetPeripheral
are nowcamelCase
instead ofPascalCase
Healthkit
Cordova wrapper now supports iOS 15 and up
Added support for HealthKit workout types added in iOS 13 - 16.
Google Fit
Now only reads Summary/Routine data from
DataTypes
that have been granted permission
Samsung Health
Switched to using static ID for Android SHealth notification channel name to avoid multiple channels showing up in notification settings
Xamarin.iOS Wrappers Released - October 11, 2022
Xamarin iOS Full Wrapper v1.14.1
Xamarin iOS Aggregator Wrapper v1.14.1
Xamarin.iOS Changes
General
Bundled native SDKs upgraded to:
iOS v1.14.1
Rename iOS dictionary key from "recordType" to "record_type"
Core
VLDUser credentials (validicUserID, organizationID, accessToken) must now be non-empty strings. If an empty string (or nil) is used for any of those properties,Â
-startSessionWithUser:
 will throw an exception. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.Implemented user validation against the Validic API. User credentials are checked whenÂ
-startSessionWithUser:
 is called, and any user session started with invalid or unknown credentials will trigger a call toÂ[[VLDSession sharedSession] endSession]
.Any 401 Unauthorized response from the Validic API will automatically trigger a call toÂ
[[VLDSession sharedSession] endSession]
.Added a default user session. Accessible viaÂ
[VLDUser defaultUser]
, this user session can be initialized to perform foreground Bluetooth and VitalSnap reads only while the app is offline. This feature is intended to be used with the Full SDK package when valid Validic user session credentials are unavailable/unknown.If your app always has access to a valid set of user credentials and always initializes the SDK with a valid set of user credentials, then no changes are needed.
The recommended SDK implementation is to always provision users on the Validic server then initialize the SDK with valid session credentials for the user. Therefore, use of the default user is not common and its use should be limited to instances where you are unable to retrieve valid session credentials and you need to perform a foreground operation (Bluetooth pair, Bluetooth foreground read, or VitalSnap read).
Some operations will not function with the default user. SDK operations that require a server-side user will not function while the SDK is initialized with the default user. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.
If you need assistance adjusting your implementation of the SDK to account for these changes, please reach out to the Validic support team at support@validic.com.
Deprecated theÂ
VLDLogging
 class log property used for masking debug log output. Please useÂlogMask
 instead.Set timeout for requests to 10 seconds.
Bluetooth
Added generic support for pulse oximeters that follow the Bluetooth standard for Spot Check measurements.
Added support for ChoiceMMed pulse oximeter MD300CI218 (peripheral 45).
BluetoothPeripheral
properties returned fromgetPeripheral
are nowcamelCase
instead ofPascalCase
OCR
OCRPeripheral
properties returned fromgetPeripheral
are nowcamelCase
instead ofPascalCase
Healthkit
Xamarin iOS wrapper now supports iOS 15 and up
Added support for HealthKit workout types added in iOS 13 - 16.
Xamarin.Android Wrappers Released - October 11, 2022
Xamarin Android Full Wrapper v1.14.5
Xamarin Android Aggregator Wrapper v1.14.5
Xamarin.Android Changes
General
Bundled native SDKs upgraded to:
Android 1.14.5
Shared
User credentials (validicUserID, organizationID, accessToken) must now be non-empty strings. If an empty string (or nil) is used for any of those properties,Â
Session.startSessionWithUser
 will throw an exception. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit and Samsung Health reads; passive Bluetooth reads.Implemented user validation against the Validic API. User credentials are checked whenÂ
Session.startSessionWithUser
 is called, and any user session started with invalid or unknown credentials will trigger a call toÂSessionConnectionListener.onSessionEnded(User, unsentRecords)
.Any 401 Unauthorized response from the Validic API will automatically trigger a call toÂ
SessionConnectionListener.onSessionEnded(User, unsentRecords)
.Added a default user session. Accessible viaÂ
User.DEFAULT_USER
, this user session can be initialized to perform foreground Bluetooth and VitalSnap reads only while the app is offline. This feature is intended to be used with the Full SDK package when valid Validic user session credentials are unavailable/unknown.If your app always has access to a valid set of user credentials and always initializes the SDK with a valid set of user credentials, then no changes are needed.
The recommended SDK implementation is to always provision users on the Validic server then initialize the SDK with valid session credentials for the user. Therefore, use of the default user is not common and its use should be limited to instances where you are unable to retrieve valid session credentials and you need to perform a foreground operation (Bluetooth pair, Bluetooth foreground read, or VitalSnap read).
Some operations will not function with the default user. SDK operations that require a server-side user will not function while the SDK is initialized with the default user. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.
If you need assistance adjusting your implementation of the SDK to account for these changes, please reach out to the Validic support team at support@validic.com.
Bluetooth
Added generic support for pulse oximeters that follow the Bluetooth standard for Spot Check measurements.
Added support for ChoiceMMed pulse oximeter MD300CI218 (peripheral 45).
Added
InvalidUserException
as thecause
for aValidicBluetoothException
when attempting to execute an operation with anull
user or a user with credentials that cannot be used when performing an API request.BluetoothPeripheral
properties returned fromgetPeripheral
are nowcamelCase
instead ofPascalCase
Bond with OS before connecting to peripherals
Fix updating time on Omron devices
OCR
OCRPeripheral
properties returned fromgetPeripheral
are nowcamelCase
instead ofPascalCase
Google Fit
Now only reads Summary/Routine data from
DataTypes
that have been granted permission
Samsung Health
Switched to using static ID for Android SHealth notification channel name to avoid multiple channels showing up in notification settings
Release completed October 12, 2022