2014-03-03 274 views
2

我试图更好地理解蓝牙LE并一直在玩iOS和Android的蓝牙栈和各种信标(StickNFind,Estimote等...)使用CoreBluetooth有可能获得蓝牙LE设备的原始扫描记录

  • 在Android上,当设备被发现时,我得到一个原始的“扫描记录” - 我可以解析自己以获取设备的广告数据的一个数据块。
  • 在iOS上,这由iOS解析并显示为字典。

不够公平,但我试图用CoreBluetooth(即:不定位服务)来读取一个iBeacon显示广告数据,发现的iOS似乎去掉了iBeacon显示设备制造商特定的广告数据。

我意识到我应该使用苹果认可的方式来检测iBeacons,但它并不真正适合我们的用例,并且怀疑是否有解决方法。

+0

看看这个http://beekn.net/2013/10/ibeacons-can-my-ios-app-find-beacons-that-arent-mine/ –

回答

5

编辑:iOS不允许您访问任何与iBeacon格式不匹配的蓝牙广告的原始数据。

不幸的是,iOS阻止访问所有BLE广告 的原始数据,其中包括iBeacons的 。这使得无法通过CoreBluetooth访问iBeacon标识符。

查看详情this blog post

+0

这只适用于iBeacons。您确实可以在iOS上获得任何其他LE广告的原始广告数据:'[advertisementData objectForKey:CBAdvertisementDataManufacturerDataKey]' –

+0

您是对的。当我发布答案时,我不知道这一点。我会澄清。 – davidgyoung