in src/Covi.iOS/Features/Bluetooth/Scanning/PeripheralManager.cs [93:122]
public override void DiscoveredService(CBPeripheral peripheral, NSError error)
{
var descriptor = peripheral.ToDeviceDescriptor();
if (error != null)
{
_deviceManager.HandleDeviceCommunicationDiscoveryServiceError(descriptor, error.LocalizedFailureReason, (d) =>
{
_centralManager.CancelPeripheralConnection(peripheral);
});
return;
}
CBUUID uuidCharacteristic = CBUUID.FromString(_tracingInformation.CharacteristicId);
CBUUID uuidService = CBUUID.FromString(_tracingInformation.ServiceId);
var service = peripheral.Services.FirstOrDefault(x => x.UUID == uuidService);
if (service != null)
{
_deviceManager.HandleDeviceCommunicationDiscoveredService(descriptor, (d) =>
{
peripheral.DiscoverCharacteristics(new[] { uuidCharacteristic }, service);
});
}
else
{
_deviceManager.HandleIncorrectDevice(descriptor);
_centralManager.CancelPeripheralConnection(peripheral);
}
}