Bluetooth Operations
Native iOS ==> Bluetooth framework
Pair
Certain peripherals require pairing with the mobile device before a reading can be taken. You can check the requiresPairing
property on the VLDBluetoothPeripheral
object to know if it must be paired.
To pair a peripheral with the mobile device, call the pairPeripheral:
method on VLDBluetoothPeripheralController
.
let peripheral: VLDBluetoothPeripheral
let controller = VLDBluetoothPeripheralController()
controller.delegate = self
controller.pairPeripheral(peripheral)
To know if a peripheral was successfully paired you will need to implement the pairing methods of the VLDBluetoothPeripheralControllerDelegate
protocol.
func bluetoothPeripheralController(_ controller: VLDBluetoothPeripheralController!, didPairPeripheral peripheral: VLDBluetoothPeripheral!) {
// Peripheral paired successfully
}
func bluetoothPeripheralController(_ controller: VLDBluetoothPeripheralController!, didNotPairPeripheral peripheral: VLDBluetoothPeripheral!, error: Error!) {
// Peripheral did not pair
}
Read
Once you are ready to read from a peripheral, the process is fairly similar to the pairing process. You should initially show the peripheral's instructions
, and then show the readingInstructions
once bluetoothPeripheralController:isReadyToReadFromPeripheral:
is called.
let peripheral: VLDBluetoothPeripheral = // A peripheral from the supportedPeripherals list
let controller = VLDBluetoothPeripheralController()
controller.delegate = self
controller.read(from: peripheral)
You must also implement the reading methods of the VLDBluetoothPeripheralControllerDelegate
protocol.
func bluetoothPeripheralController(_ controller: VLDBluetoothPeripheralController!, isReadyToReadFrom peripheral: VLDBluetoothPeripheral!) {
// Time to present the readingInstructions to the user
}
func bluetoothPeripheralController(_ controller: VLDBluetoothPeripheralController!, shouldSubmitReadings records: [VLDInformRecord]!, from peripheral: VLDBluetoothPeripheral!) -> Bool {
// To have the reading automatically added to the session and uploaded, return true from this method.
// To first have the reading validated by the user, you can return false from this method. Once the user has validated the reading
// you must manually submit the record by calling VLDSession.sharedInstance().submitInformRecord(record)
return true
}
func bluetoothPeripheralController(_ controller: VLDBluetoothPeripheralController!, readingFailedFor peripheral: VLDBluetoothPeripheral!, error: Error!) {
// Reading failed
}
Updated 18 days ago