gpt4 book ai didi

ios - 为什么无法发现特定的 BLE 外设服务?

转载 作者:可可西里 更新时间:2023-11-01 02:08:43 25 4
gpt4 key购买 nike

我正在使用以下代码进行扫描:

self.centralManager?.scanForPeripherals(withServices: serviceUUID, options: nil)

如果我将 serviceUUID 替换为 nil 或将其定义为

let serviceUUID = [CBUUID(string:"1803")]

但它不适用于

let serviceUUID = [CBUUID(string:"00001803-494c-4f47-4943-544543480000")]

用 Lightblue 仔细检查,但服务 UUID 似乎没有任何拼写错误。 Lightblue screenshot

最佳答案

我认为 Larme 已经给出了适当的解决方案,但我会将其表述为答案而不是评论,因为评论可能被忽略了。

您扫描在其广告数据中公开特定服务的外围设备。这意味着整个字符串 00001803-494c-4f47-4943-544543480000 必须是广告数据的一部分。如果没有找到设备,但如果它适用于 1803,则设备似乎只有 1803 作为服务信息广播。

请检查设备的广告数据。如果他们只暴露了 16 位 UUID,您就找到了问题的原因。

请记住,广告数据的长度限制为 31 个字节,并且每个项目的长度和数据类型声明会进一步减少。因此,仅广播 16 位 UUID 而不会为 128 位 UUID 浪费大部分有效负载是很常见的。

关于ios - 为什么无法发现特定的 BLE 外设服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41752180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com