我们可以使用 Core-Bluetooth 模拟“不可连接”的外围设备吗
Posted
技术标签:
【中文标题】我们可以使用 Core-Bluetooth 模拟“不可连接”的外围设备吗【英文标题】:Can we simulate "non-connectable" peripheral using Core-Bluetooth 【发布时间】:2014-10-11 18:40:21 【问题描述】:我希望我的应用发送“不可连接”广告?
当我看到startAdvertsing
方法时,它说只支持CBAdvertisementDataLocalNameKey
和CBAdvertisementDataServiceUUIDsKey
。
这是否意味着CBAdvertisementDataIsConnectable
不能设置为NO,以模拟iBeacon
?
如果有其他方法可以模拟“不可连接”的外围设备,请告诉我。
advertisementData
- 包含您要宣传的数据的可选字典。 advertisementData
字典的可能键在CBCentralManagerDelegate
协议参考中有详细说明。也就是说,外设管理器对象仅支持其中两个键:CBAdvertisementDataLocalNameKey
和 CBAdvertisementDataServiceUUIDsKey
【问题讨论】:
您可以使用 CoreLocation 框架将 ios 设备配置为充当 iBeacon 【参考方案1】:我认为“可连接”一词可能会引起一些担忧。 “连接”是关于中心(即客户端)查询您的服务公开的特征(即属性)的。
据记录,您提到的特定密钥不受支持(目前),但我不明白为什么它的可用性对您来说是必要的。
如果您没有任何与您的服务相关联的特征,那么将没有任何东西可以连接。正确的?事实上,如果您从广告中跳过 CBAdvertisementDataServiceUUIDsKey 键,那么外围设备将看起来没有服务,因此没有要查询的特征(通过连接)。
【讨论】:
其实不是这样的。蓝牙规范中定义了几种类型的广告包。 ADV_NONCONN_IND 是一个“不可连接的无向广告”数据包,我认为这就是问题所在。 是的 - 当时它不受支持(在 ios 核心蓝牙框架中)。我最近没碰过它,但如果支持你可以添加一个代码示例以上是关于我们可以使用 Core-Bluetooth 模拟“不可连接”的外围设备吗的主要内容,如果未能解决你的问题,请参考以下文章
如果在我们正在测试的方法中使用新关键字声明实例,我们可以模拟它吗?
我们可以在 iPhone 模拟器中使用 UI 自动化工具吗?