在 iOS 中单独访问所有三个 BLE 广告通道
Posted
技术标签:
【中文标题】在 iOS 中单独访问所有三个 BLE 广告通道【英文标题】:Accessing all three BLE advertisement channels individually in iOS 【发布时间】:2017-06-21 07:21:52 【问题描述】:蓝牙低功耗使用 40 个通道,每个通道 2 MHz 宽,跨越 未经许可的 2.4 GHz 无线电频段。在 40 个频道中,BLE 广告在三个频道上播放。这些广告频道名义上标记为 37、38 和 39,并且分别在 2402 MHz、2426 MHz 和 2480 MHz 处间隔很大。
在 ios 的核心位置,所有扫描到的 BLE 信标都列在一个 NSArray 中,并且可以轻松访问每个信标的 RSSI 值。例如。
CLBeacon* beacon1 = [beacons firstObject]; NSNumber *RSSI = [NSNumber numberwithFloat:beacon1.RSSI];
这里,RSSI 值是 CoreLocation 提供的“平均”值。此外,此 RSSI 实时波动很大。
现在,我的问题是,iOS(objective-C)中是否有任何方法/框架可以访问每个广告频道,以便我们可以从每个频道获取 RSSI 值?
已发表的期刊 [http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7103024&tag=1] 展示了所有三个广告渠道的 RSSI 结果。该论文称,该功能(分别访问三个广告频道)在 iOS 7.0 之后可用。但是,我无法弄清楚在 iOS 中访问三个广告频道的确切方法。
提前谢谢你。
【问题讨论】:
没有公共 API 可以为您提供此信息。 有这方面的消息吗? 【参考方案1】:一般来说,Apple 不会披露此类信息。没有公共 API 可用于开发 IOS 的核心组件。由于 android 是一个开源平台,我们可以找到许多用于访问传感器和每个组件的源代码,但 Apple 并非如此。此外,这可能是出于安全原因,苹果一直保持到今天。
【讨论】:
以上是关于在 iOS 中单独访问所有三个 BLE 广告通道的主要内容,如果未能解决你的问题,请参考以下文章
iOS 上的 BLE 广告和 CBAdvertisementDataLocalNameKey 大小