Bluetooth Low Energy uses 40 channels, each 2 MHz wide, spanning the unlicensed 2.4 GHz radio band. Among the 40 channels, BLE advertisements are broadcast on three channels. These advertisement channels are nominally labeled 37, 38, and 39 and are widely spaced at 2402 MHz, 2426 MHz, and 2480 MHz, respectively.
In Core location of iOS, all the scanned BLE beacons are listed in an NSArray and the RSSI value of each beacon can be accessed easily. Eg.
CLBeacon* beacon1 = [beacons firstObject]; NSNumber *RSSI = [NSNumber numberwithFloat:beacon1.RSSI];
Here, the RSSI value is the 'averaged' value provided by CoreLocation. Also, this RSSI fluctuates a lot at realtime.
Now, my query is, is there any methods/frameworks in iOS (objective-C) to access the each advertisement channel so that we can get RSSI value from each channel?
A published journal [http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7103024&tag=1] has presented the RSSI result from all the three advertisement channels. The paper says that this feature (accessing three advertisement channels individually) is available after iOS 7.0. However, I'm unable to figure out the exact way of accessing the three advertisement channel in iOS.
Thank you in advance.