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
.
是否可以仅使用 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
.