繁体   English   中英

广告数据显示 3 项服务,但仅发现一项

[英]Advertisement data shows 3 services, but there is only one discovered

我使用 CBCentralManager 连接到 BLE 外围设备。 它与此广告数据相关联:

["kCBAdvDataLocalName": name, 
"kCBAdvDataIsConnectable": 1, 
"kCBAdvDataServiceUUIDs": <__NSArrayM 0x600000c74de0>(
Generic Access Profile,
Generic Attribute Profile,
1803
),
"kCBAdvDataChannel": 37]

所以我调用peripheral.discoverServices(nil)来获取这 3 个服务,但是didDiscoverServices只找到一个

 [<CBService: 0x600001768040, isPrimary = NO, UUID = 1803>]

谁能澄清为什么会这样?

您在广告中看到的三个服务中的两个是通用访问配置文件通用属性配置文件 这些用于管理外围设备的发现以及服务和属性的发现。

当您请求外设、服务和特征发现时,Core Bluetooth 使用这些服务。

您无法直接与他们互动,因此当您发现可用服务时,他们不会报告给您的代表。

您的外围设备公开的最终服务是链路丢失服务 ( 0x1803 )。 该服务确实具有您的中心可以与之交互的特性,因此在您发现服务时会返回它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM