I am working on an app that scans for a specific peripheral, ones peripheral is found it should send the small amount of data.
App works in the foreground and also in background. I have also add this code in the plist
UIBackgroundModes bluetooth-central When iPhone is locked and peripheral starts advertising, it doesn't call
func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {
I have done some research but couldn't find an answer.
Any help is appreciated.
Thanks
Save the discovered
CBPeripheral
instance.Or adding it into an array. If you are discovering more than one peripherals.
This way you can reconnect to whichever
CBPeripheral
you need (if it is available, obviously).This delegate method is invoked when a peripheral is disconnected
optional func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error error: NSError?)
. You can try using it in your benefit by trying to reconnect to your peripheral.And finally you should check the Apple reference for performing long-term actions in background.
Hope it helps!