连接到配对蓝牙设备iOS8.1

时间:2014-11-20 15:58:29

标签: ios bluetooth bluetooth-lowenergy core-bluetooth ios8.1

新手CoreBlooth在这里。我已经成功地编写了一个小应用程序来连接到Wahoo Blue HR心率监视器并检索我心率等的bpm。我使用了下面的教程但是将代码重写为swift。

Link to tutorial

我现在正在尝试编写一个简单的应用程序来检索我所拥有的蓝牙LE BP读取器的血压读数。有问题的模型是iHealth BP5。

当我使用以下代码扫描此设备时,我什么都没得到。

func centralManagerDidUpdateState(central: CBCentralManager!) {

    if central.state == CBCentralManagerState.PoweredOff {
        println("CoreBluetooth BLE hardware is powered off")
    }
    else if central.state == CBCentralManagerState.PoweredOn {
        println("CoreBluetooth BLE hardware is powered on and ready")
        let IHEALTHBP5_BP_DEVICE_INFO_SERVICE_UUID = CBUUID(string:"1810")
        let services = [IHEALTHBP5_BP_DEVICE_INFO_SERVICE_UUID]
        centralManager!.scanForPeripheralsWithServices(services, options: nil)
    }

}

我显然已将服务UUID更改为BP监视器,并使用运行LightBlue的iPad进行检查并启动血压服务。它适用于模拟BP服务的iPad而不是BP5设备本身吗?

我一直在阅读有关制造商能够隐藏设备的内容吗?这可能是正在发生的事情。

我注意到BP5设备实际上必须通过iOS蓝牙设置“配对”才能与官方应用配合使用,而心率监测器却没有。这是否表明心率监测器向任何人广播,但BP5具有更安全的连接类型?

道歉,如果术语已关闭,但我是蓝牙世界的新手。

感谢任何帮助或指导。

问候

奥利

PS检查设备在蓝牙设置应用程序中是否已“连接”,并且设备上的蓝牙指示灯从闪烁变为稳定,我使用了以下方法但是返回了零结果。

let connectedPeripherals =   centralManager!.retrieveConnectedPeripheralsWithServices(services)
        println("Number of Connected Devices : \(connectedPeripherals.count)")

1 个答案:

答案 0 :(得分:6)

产品的web page表示它使用"无线通信:蓝牙V3.0 + EDR Class 2 SPP",这是"遗产"蓝牙串行端口协议,而不是蓝牙低功耗/蓝牙4.0。这与您需要配对设备和Core Bluetooth无法看到的设备的说明相符。

此类设备由外部附件框架管理。您需要确定他们在MFi计划下注册的供应商ID,然后查找其协议文档或对其协议进行反向工程,因为它不会与使用GATT协议的BLE BP监视器相同