如何解决使用 AT 命令使用 Adafruit Feather 32u4 广告 ANCS 服务
我正在尝试使用 Apple Notification Center Service 来实现 Adafruit Feather 32u4 Bluefruit LE,以便能够从我的 iPhone 接收通知到 Feather 板,通过串行连接将它们发送到我的 PC 并处理它们我写的软件。
我使用 AT+GATTADDSERVICE 和 AT+GATTADDCHAR 命令设置了 ANCS 服务和特性,但是当我尝试使设备可被发现并宣传 ANCS 服务的使用时,设备将无法被发现。
这是我使用的命令:
AT+GAPSETADVDATA=02-01-06-11-06-79-05-F4-31-B5-CE-4E-99-A4-0F-4B-1E-12-2D-00-D0
地点:
- 0x02:是有效载荷中第一条消息的字节长度
- 0x01:是“数据类型值”,表示这是一个“标志”
- 0x06:表示不支持 BR/EDR 的 LE 通用可发现模式标志
- 0x11:为第二条消息的字节长度(0x11为十进制17字节,“消息“128位服务类UUID不完整列表”类型为1,ANCS的UUID为16字节)立>
- 0x06:是“128 位服务类 UUID 的不完整列表”的“数据类型值”
- 0x7905F431B5CE4E99A40F4B1E122D00D0:是 ANCS 的 UUID。
不过,当我使用上述命令时,设备将无法被发现。你知道为什么吗?
在尝试解决问题时,我注意到如果我尝试宣传不同的服务,例如心率服务和设备信息服务,其他设备确实可以看到该设备。这是我使用的命令:
# Advertise as discoverable and BLE only with 16-bit UUIDs 0x180D and 0x180A
AT+GAPSETADVDATA=02-01-06-05-02-0d-18-0a-18
您知道为什么在尝试宣传 ANCS 服务时设备不可见吗?
谢谢!
附言我是蓝牙协议的新手,抱歉。
解决方法
查看您提供的 ANCS 的 specification。它指出:
只有一个 ANCS 实例可以出现在 NP 上。由于 iOS 的特性,不能保证 ANCS 始终存在。因此,NC 应该寻找并订阅 GATT 服务的 Service Changed 特性,以便随时监控 ANCS 的潜在发布和取消发布。
再往下看,您会发现一些数据表明您的 iPhone 是 NP,并且可能会实施 ANCS。
您的 Feather 板将是 Central,应该寻找服务并连接到它。正如@Paulw 在评论中所说的那样,您的做法是错误的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。