iBeacon:通过 coreBluetooth 获取 RSSI

iBeacon: Get RSSI wit coreBluetooth

是否可以仅使用 coreBluetooth 获取信标的 RSSI 值?

我实现了以下代码:

let manager = CLLocationManager()
var peripheralManager = CBPeripheralManager()
var advertisedData:NSDictionary = NSDictionary()

//test if there is a working bluetooth connection
func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager!) {
    switch peripheral.state {
    case CBPeripheralManagerState.PoweredOn:
        self.peripheralManager.startAdvertising(self.advertisedData as [NSObject : AnyObject])

        println("success")
    default: println("default")
    }
}

现在我可以测试蓝牙是否激活了。但是我怎样才能得到信标的 RSSI 值呢?只有 CoreLocation 才有可能吗?

CLBeacon 有一个 属性 rssi,更多信息在 Apple's Doc.

CBPeripheral有一个RSSI属性,在iOS8中已弃用,Apple建议改用readRSSI

因为通常情况下,您应该通过 CLBeacon (CoreLocation.framework) 读取您的 iBeacons 值,我建议使用 rssi。如果您通过低功耗蓝牙 (CoreBluetooth.framework) 控制 iBeacon,请使用 readRSSI.