我正在尝试使用CoreBluetooth应用程序接口连接到心率监视器。
根据蓝牙规范,心率监视器服务是0x180D。要了解蓝牙设备有哪些服务,您可以连接到它,然后请求可用的服务。如果其中一个设备服务是0x180D,那么您就得到了一个心率监视器。不幸的是,这意味着要连接到所有附近的蓝牙设备来过滤心率监视器。
幸运的是,iOS具有以下方法-scanForPeripheralsWithServices:,该方法用于扫描广告特定服务的蓝牙设备。我遇到的问题是,一些心率监测仪宣传他们的服务,但有些却没有。
其他应用程序如何连接到心率监视器?他们是否会连接到附近的每一个蓝牙设备,以发现它是否是心率监测器?
发布于 2014-08-18 20:59:38
核心蓝牙只能根据它知道的数据进行过滤。如果设备广告180D服务,那么您的应用程序将在过滤时发现它。如果该设备未通告180D,则CB (或任何其他设备)没有使其有资格被选择的附加信息。
因此,检测所有设备的唯一方法是扫描而不过滤特定服务。这是最简单、最有效的方法。
https://stackoverflow.com/questions/25324692
复制相似问题