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

CpB*_*nge 1 bluetooth ios core-bluetooth bluetooth-lowenergy ios8.1

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

链接到教程

我现在正在尝试编写一个简单的应用程序来检索我所拥有的蓝牙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)
    }
Run Code Online (Sandbox Code Playgroud)

}

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

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

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

如果术语关闭但我不熟悉蓝牙世界,请道歉.

任何帮助或指导表示赞赏.

问候

奥利

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

let connectedPeripherals =   centralManager!.retrieveConnectedPeripheralsWithServices(services)
        println("Number of Connected Devices : \(connectedPeripherals.count)")
Run Code Online (Sandbox Code Playgroud)

Pau*_*w11 6

该产品的网页声明它使用"无线通信:蓝牙V3.0 + EDR Class 2 SPP",这是一种"传统"蓝牙串行端口协议,而不是蓝牙低功耗/蓝牙4.0.这与您需要配对设备和Core Bluetooth无法看到的设备的描述相符.

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