Bluetooth Behavior
Native Android ==> Bluetooth module
Most supported Bluetooth devices function similarly and you can follow the instructions in Bluetooth permissions, Bluetooth Operations and Passive Read to work with them.
However, a few of our supported devices have additional requirements and/or considerations that you need to be aware of. Those are covered below:
Agamatrix
Approval Required from i-SENS
The Agamatrix Jazz Wireless 2 glucose meter, supported via a custom Bluetooth integration (peripheralID = 32), requires an authentication key, which is provided by Agamatrix, in order to communicate with the meter. To configure your Agamatrix authentication key for use with the Agamatrix meter in the Validic Mobile SDK:
- Create a file named agamatrix.license
- File contents should be your Agamatrix key without the hex prefix notation 0x. For example, if your key is 0x011234567890987654321 then your file contains 011234567890987654321.
- Add the agamatrix.license file in the application's /app/src/main/assets/ folder.
CVS Health
Approval Required from i-SENS
The CVS Health Advanced Bluetooth Glucose Meter, supported via a custom Bluetooth integration (peripheralID = 33), requires an authentication key, which is provided by Agamatrix, in order to communicate with the meter. To configure your Agamatrix authentication key for use with the CVS Health meter in the Validic Mobile SDK:
- Create a file named cvs_advanced.license
- File contents should be your Agamatrix key without the hex prefix notation 0x. For example, if your key is 0x055234567890987654987 then your file contains 055234567890987654987.
- Add the cvs_advanced.license file in the application's /app/src/main/assets/ folder.
The CVS Health Digital Glass Body Analysis Scale is supported in an alpha state in the Validic Mobile SDKs. Body weight is the only metric that can be retrieved from the scale and a new user profile will be created on the scale during pairing. Users cannot pair to an existing user profile and historical readings (readings captured prior to pairing) will not be synced.
Roche CoaguChek INR Meter
Approval Required from Roche
The Roche CoaguChek integration requires pre-approval for Roche's CoaguChek SDK. Please reach out to Validic Support at [email protected] if you are interested in integrating with Roche CoaguChek INR meters.
The Roche CoaguChek Vantus INR meter Meter (peripheralID = 51) requires a license file which is provided by Validic, in order to communicate with the meter. To configure your Validic License for use with the Roche CoaguChek INR meter in the Validic Mobile SDK:
- Add validic.license provided via Validic Support in the application's /app/src/main/assets/` folder.
- Then in your application before pairing, provide the device encryption key. The key is required to decrypt readings.
- Not every Android phone has the necessary encryption alogorithm, so add a dependency on SpongyCastle for support in your application's build.gradle
dependencies {
implementation: 'com.madgag.spongycastle:prov:1.58.0.0'
}
The Roche CoaguChek Vantus INR meter has an uncommon reading workflow which requires that the end user provide their meter's unique encryption key. That encryption key will be used to decrypt the reading values captured from the user's meter. Without a valid encryption key, foreground and passive reads with the INR meter will fail.
Because this workflow is specific to the Roche INR meter, any Validic clients implementing the INR meter Bluetooth integration must build a user experience (modal or screen) to capture the meter's encryption key from the user. This key will then be passed by the client to the Validic SDK where it will be saved and used to decrypt readings. Note: the key is a long string of hexadecimal characters, so it is recommended to implement a QR code reading to capture the code displayed on the meter.
A code sample follows to illustrate what this could look like:
// This example requests the encryption key from inside a function for simplicity.
// This example uses a AppCompatEditText text field to collect the encryption key from the user. It is recommended to use a QR code reader to reduce the likelihood of errors.
private fun pair() {
viewLifecycleOwner.lifecycleScope.launch {
try {
PairRequest(peripheral, device).enqueue()
if (peripheral.peripheralID == 51) { // Add Encryption Key dialog for Roche CoaguChek
addButton("Save Encryption Key") {
val editText = AppCompatEditText(requireActivity())
editText.isAllCaps = true
editText.inputType =
InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS or InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
dialog =
AlertDialog.Builder(requireActivity())
.setView(editText)
.setTitle("Enter CoaguChek Encryption Key")
.setPositiveButton("Ok") { _, _ ->
val value = editText.text?.toString()
value?.let {
if (value.isNotEmpty()) {
peripheral.storePeripheralDataForDevice(
device.address,
KEY_ENCRYPTION_KEY,
editText.text?.toString()?.filter { it.isLetterOrDigit() }
)
}
dialog = null
}
}
.setNegativeButton("Cancel") { d, _ ->
d?.cancel()
dialog = null
}
.show()
}
}
} catch (e: ValidicBluetoothException) {
dialog?.dismiss()
}
}
}
Welch Allyn Series 1500/1700
The Welch Allyn series 1500 blood pressure cuffs sometimes fail to pair on Android 10 phones. Several retries may be needed to receive a successful bond. The behavior is improved on Android 11+ and also in the Welch Allyn series 1700 but it's not perfect.
The Validic Mobile SDK already attempts to communicate with the bp cuff more than once to help prevent an error, however, you should plan to guide the user through retrying if an error does occur.
Updated 4 days ago