didReadRSSI在iOS上调用,但在OS X上调用

时间:2016-03-25 19:49:52

标签: ios swift macos core-bluetooth

我正在尝试编写一个OS X客户端,可以频繁更新蓝牙外设的RSSI值。

我的客户端应用程序正在找我的iPhone设备,我正在运行一个广告蓝牙服务的测试应用程序。客户端应用程序有一个计时器,导致{3}每3秒执行一次。

在OS X上运行时,我没有成功调用didReadRSSI,但是当我在iOS上运行完全相同的Swift代码时,它运行正常。

在iOS 9.3上 - 使用有效的RSSI值按预期调用didReadRSSI。

在OS X 10.11.4上 - 永远不会调用didReadRSSI。

我在iOS和OS X上运行以下完全相同的Swift代码:

Replace(Yourcolumn, '<br>.</br>', '<br></br>')

在iOS上运行时的输出是:

redis> ZADD z 0 one 0 two 0 three 0 four
(integer) 4
redis> ZSCAN z 0 match *o*
1) "0"
2) 1) "four"
   2) "0"
   3) "one"
   4) "0"
   5) "two"
   6) "0"

在OS X上运行时的输出是:

peripheral.readRSSI()

请注意,在两个平台上返回的外围设备名称不同。我不知道这是否重要。

如何在OS X上调用didReadRSSI?

1 个答案:

答案 0 :(得分:1)

OSX使用较旧的样式,将其添加到您的类中以获得预期的行为。

func peripheralDidUpdateRSSI(peripheral: CBPeripheral!, error: NSError!) {
    print("peripheralDidUpdateRSSI \(peripheral.name!) = \(peripheral.RSSI)")
}