3
votes

Or, does iOS Bluetooth in the background do a little communication now and then between central and peripheral, and automatically, periodically update peripheral.RSSI, so that it stays current?

Or, is it necessary to call [peripheral readRSSI] with its callback peripheralDidUpdateRSSI?

I've poured over the Apple BTLE docs and googled a lot, but can't find answers to these questions.

1

1 Answers

2
votes

Nope, there's no auto updating of RSSI given to the app side. Just connect the peripheral. Discover the peripheral's services. Set the CBPeripheralDelegate. Call readRSSI and wait for the delegate callback.

I suggest putting readRSSI on a timer if you want to keep it up to date for UI elements. However, I recommend not making your timer fire faster than ~ 2 seconds. Otherwise you'll end up with a bunch of errors informing you it couldn't read the RSSI.