【问题标题】:Can we simulate "non-connectable" peripheral using Core-Bluetooth我们可以使用 Core-Bluetooth 模拟“不可连接”的外围设备吗
【发布时间】:2014-10-11 18:40:21
【问题描述】:

我希望我的应用发送“不可连接”广告?

当我看到startAdvertsing 方法时,它说只支持CBAdvertisementDataLocalNameKeyCBAdvertisementDataServiceUUIDsKey

这是否意味着CBAdvertisementDataIsConnectable 不能设置为NO,以模拟iBeacon

如果有其他方法可以模拟“不可连接”的外围设备,请告诉我。

advertisementData - 包含您要宣传的数据的可选字典。 advertisementData 字典的可能键在CBCentralManagerDelegate 协议参考中有详细说明。也就是说,外设管理器对象仅支持其中两个键:CBAdvertisementDataLocalNameKeyCBAdvertisementDataServiceUUIDsKey

【问题讨论】:

  • 您可以使用 CoreLocation 框架将 iOS 设备配置为充当 iBeacon

标签: ios bluetooth cbperipheral


【解决方案1】:

我认为“可连接”一词可能会引起一些担忧。 “连接”是关于中心(即客户端)查询您的服务公开的特征(即属性)的。

据记录,您提到的特定密钥不受支持(目前),但我不明白为什么它的可用性对您来说是必要的。

如果您没有任何与您的服务相关联的特征,那么将没有任何东西可以连接。正确的?事实上,如果您从广告中跳过 CBAdvertisementDataServiceUUIDsKey 键,那么外围设备将看起来没有服务,因此没有要查询的特征(通过连接)。

【讨论】:

  • 其实不是这样的。蓝牙规范中定义了几种类型的广告包。 ADV_NONCONN_IND 是一个“不可连接的无向广告”数据包,我认为这就是问题所在。
  • 是的 - 当时它不受支持(在 ios 核心蓝牙框架中)。我最近没碰过它,但如果支持你可以添加一个代码示例
猜你喜欢
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
  • 2015-02-25
  • 2022-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多