首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在BLE中实现通知

在BLE中实现通知
EN

Stack Overflow用户
提问于 2017-04-19 01:50:58
回答 1查看 96关注 0票数 0

如何在BLE中实现通知?

我有一部智能手机,每小时它都会向附近所有的BLE设备(智能手表、RFduino等)发送通知,以达到时间同步的目的。

其他设备现在是服务器(因为它提供数据),而smartphone是收集数据的客户机。

我能把广告包装进去吗?例如,智能手机总是广播一个广告包来取消它的存在(这是其他设备可以找到的)。我能修改这个包成为时间同步吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-20 10:06:26

为了发送通知或广告,智能手机必须充当服务器,这也意味着,为了能够接收通知或扫描广告,您的外围设备必须充当客户端。

这可能有点棘手,因为如果两个设备充当客户端和服务器,它们可能不能同时完成另一个角色。您需要随时切换角色,这是解决各种问题的一个开放领域。

此外,我也不相信让智能手机定期通知附近所有设备确实是最佳选择。每个想要接收通知的设备都必须与设备连接,以便接收通知,并且在发送通知时,此连接必须已处于活动状态,以便真正获得正确的时间。因此,所有这些设备都需要提前连接到预期的通知时间,并在通知到来之前暂停连接。

最好只是为当前时间做广告,但请记住,在进行广告时,不能将智能手机作为服务器连接,因为链接层可能不同时处于扫描和广告模式,而且由于类似的原因,广告时也可能没有连接。

如果您想这样做,您可以将时间信息包含在广告数据中。有关广告数据结构的进一步信息,请参阅蓝牙核心规范v6的补充部分A部分。你可以把它放在制造商的特定数据中。

但是,另一种选择是使用写请求将时间直接写入设备。您可以定义您自己的服务和特性。您可以在服务器的广告数据中包含“时间同步”信息,当智能手机评估广告时,它可以连接到相应的设备并直接发送时间。

此过程的优点是,只有在设备上确实需要时才会更新时间,并且不必切换客户端/服务器角色,因为服务器角色中的设备可能会像往常一样做广告,而智能手机可以始终保持客户端角色。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43484944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档