Ios CBCentralManagersCanoptions合并服务UUIDSKey的目的

Ios CBCentralManagersCanoptions合并服务UUIDSKey的目的,ios,macos,core-bluetooth,iobluetooth,Ios,Macos,Core Bluetooth,Iobluetooth,文档中指出,在扫描CoreBluetooth中的设备时,可以使用CBCentralManagersCanoptions合并服务UUIDSKey选项 指定此扫描选项会导致中央管理器也进行扫描 用于请求阵列中包含的任何服务的外围设备 这个选择的目的是什么?什么是“请求服务”?与在服务阵列中指定服务UUID有何不同?据我所知,服务请求意味着当连接发生时,外围设备可以指示它希望在中心设备上使用的服务。例如,您有一个外围设备(一块智能手表或其他什么东西),它可以自己做广告,并将ANCS服务作为请求服务添加

文档中指出,在扫描CoreBluetooth中的设备时,可以使用
CBCentralManagersCanoptions合并服务UUIDSKey
选项

指定此扫描选项会导致中央管理器也进行扫描 用于请求阵列中包含的任何服务的外围设备


这个选择的目的是什么?什么是“请求服务”?与在服务阵列中指定服务UUID有何不同?

据我所知,服务请求意味着当连接发生时,外围设备可以指示它希望在中心设备上使用的服务。例如,您有一个外围设备(一块智能手表或其他什么东西),它可以自己做广告,并将ANCS服务作为请求服务添加到广告中。这将向中央指示,一旦连接,该外围设备将查找ANCS服务。如果是iOS,则用户可以从蓝牙设备列表连接到外围设备,而无需运行任何应用程序

在当前的核心蓝牙实现中,这在两个iOS设备之间并不真正可行。但如果您使用请求的服务初始化CBPeripheralManager(无需公布这些服务),并使用
CBCentralManager
扫描希望使用这些请求的服务的外围设备,最后,一旦建立连接,扫描的外围设备可能能够使用
cbperipheraldmanager
提供的服务。两台iOS设备目前无法做到这一点,因为它没有API将请求的服务添加到广告中。(如果
CBCentralManager
上的
retrieveConnectedPeripheralsWithServices
方法将另一端作为
CBPeripheral
返回(如果已初始化其
cbperipheraldmanager
),则可以从外围设备侧连接回来。)

相关SO问题:
参考博客文章:

蓝牙规范V4.0第3卷。C部分第11.1.9节

11.1.9服务征集

可以发送服务请求广告类型之一以邀请公开一个或多个服务请求广告类型的其他设备 要连接的服务请求数据中指定的服务。这个 设备应处于无向可连接模式,并处于 可发现模式。这使得中央处理器能够提供一个或多个 这些服务连接到此外设,使外设 可以使用中央计算机上的服务


“这个选项的目的是什么?”他们想知道他们可以得到一个标识符的长度。