core-location - iBeacon 和 XCode - 使用 CoreLocation 进行发现并与 CoreBluetooth 连接

标签 core-location bluetooth-lowenergy core-bluetooth ibeacon discovery

我有一个带有 BLE 模块的小硬件,可以与 iOS 设备进行通信。

我想使用 iBeacon 执行发现(因此使用 iBeacon 广告数据包),并且 - 显然 - 使用 CoreBluetooth 连接(和数据交换),但存在一些问题。

在描述问题之前,我必须告诉您,我需要在发现阶段提供这些信息:

  1. 序列号(内部需要)- 6 个字符和 10 个字符 数字。

  2. “硬件版本”,用于指定产品类型(每个产品 使用不同的协议(protocol))。

我遇到的问题基本上是如何执行发现阶段,然后连接到特定的发现对象:

A.在 iBeacon adv 数据包中,我应该使用 UUID 字段进行串行 硬件版本的编号和主要/次要字段,但如果我这样做, 设备将基本上无法被发现(iBeacon SDK for iOS 在开始监控之前需要知道要查找的UUID 阶段,因此每个设备的阶段不可能不同)。

B.在 iOS 中,iBeacon 功能可通过 CoreLocation 库获得, 标准 BLE 功能可通过 CoreBluetooth 获得。 如果我使用 iBeacon 广告包,则发现的对象 CoreBluetooth 库看不到包的任何信息 (所以,问题是:“我如何知道哪个是带有序列号的对象 XYZ?”)。

最佳答案

我意识到解决我的问题的一个可能的解决方案是以“循环方式”广告 iBeacon 和标准 BLE 包。

我尝试了一下(我宣传了 500 毫秒的 iBeacon 包和 500 毫秒的标准 BLE 包),标准 BLE 似乎没问题。

我仍然需要更多地调查 iBeacon discovery 对此有何 react ,但正如所说,它可能是一个解决方案。

关于core-location - iBeacon 和 XCode - 使用 CoreLocation 进行发现并与 CoreBluetooth 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22909907/

相关文章:

iOS 5 MapKit、MKPlacemark,在 iOS 5 上运行 iOS 4.3 应用程序

ios - 如何在 mapKit 中获取路线长度

ios - 从位置管理器请求状态时 CLRegionState 出现未知?

java - 为 Apple 构建蓝牙设备

ios - 查看附近所有可发现的蓝牙设备 - Swift iOS XCode

ios - 无法将类型 'NSMutableDictionary' 的值转换为预期的参数类型 '[String: AnyObject]?'

python-3.x - Pygattlib 未经授权访问内存 [Ubuntu 16.4]

bluetoothctl 找不到我的设备,而 hcitool 如果不受信任则可以/找不到设备

ios - 在 iOS 中具有相同服务和特性的多个 BLE 设备

ios - 更快地重新连接 CBPeripheral