Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何过滤心率监测器_Ios_Objective C_Bluetooth_Bluetooth Lowenergy_Core Bluetooth - Fatal编程技术网

Ios 如何过滤心率监测器

Ios 如何过滤心率监测器,ios,objective-c,bluetooth,bluetooth-lowenergy,core-bluetooth,Ios,Objective C,Bluetooth,Bluetooth Lowenergy,Core Bluetooth,我正在尝试使用CoreBluetooth API连接到心率监视器 根据蓝牙规范,心率监测服务是免费的。要了解蓝牙设备有哪些服务,您可以连接到它,然后请求可用的服务。如果其中一个设备服务是你有一个心率监视器。不幸的是,这意味着连接到附近的所有蓝牙设备以过滤心率监视器 幸运的是,iOS有以下方法可以扫描特定服务的蓝牙设备。我遇到的问题是,有些心率监测器宣传他们的服务,但有些没有 其他应用程序如何连接到心率监视器?他们是否连接到附近的每个蓝牙设备,以发现它是否是心率监视器?核心蓝牙只能根据它知道的数据

我正在尝试使用CoreBluetooth API连接到心率监视器

根据蓝牙规范,心率监测服务是免费的。要了解蓝牙设备有哪些服务,您可以连接到它,然后请求可用的服务。如果其中一个设备服务是你有一个心率监视器。不幸的是,这意味着连接到附近的所有蓝牙设备以过滤心率监视器

幸运的是,iOS有以下方法可以扫描特定服务的蓝牙设备。我遇到的问题是,有些心率监测器宣传他们的服务,但有些没有


其他应用程序如何连接到心率监视器?他们是否连接到附近的每个蓝牙设备,以发现它是否是心率监视器?

核心蓝牙只能根据它知道的数据进行过滤。如果一台设备宣传180D服务,那么你的应用程序将在过滤时发现它。如果设备未公布180D,则CB(或其他任何内容)没有其他信息使其符合被选择的条件


因此,检测所有设备的唯一方法是在不过滤特定服务的情况下进行扫描。这是最简单、最有效的方法。

目前我正在做后者。连接到附近的每一台设备似乎更繁琐,但它也比等待设备宣传其服务更快、更可靠。你知道为什么BLE设备与宣传其服务如此不一致吗?我不确定。这始终是制造商的决定。他们这样做可能有自己的理由。如果您了解其中一些指纹,您可能会找到其他指纹,这些指纹可以告诉您有关设备的更多信息,例如名称或其他服务。然而,我认为你最好去发现所有可能的目标,因为在一般情况下,最多只有一个或几个设备。