搜索所有iBeacons而不仅仅是特定的UUID

Chr*_*örz 20 core-location ios7 ibeacon

是否有可能搜索iBeacons附近的所有内容?我知道可以iBeacons通过UUID 进行搜索.但我想找到iBeacons附近的所有.

Jor*_*ide 12

iBeacon是一个区域,具有UUID的定义属性.因此,您只能搜索与UUID匹配的那些.找到具有特定UUID的一个或多个后,您可以使用委托回调找出哪个最接近,其中信标存储在按距离排序的数组中.

这里有很好的示例代码,还有一个非常详细的WWDC视频会话:"核心位置有什么新东西"

  • 我写了一个非常简单的应用程序,演示了iBeacons API的工作原理:https://github.com/nicktoumpelis/HiBeacons.希望它有用. (3认同)

小智 7

iBeacons是比普通BLE外设更高级的构造.根据Apple文档可以确定的信标,信标与其服务UUID相关联.也就是说,一系列信标是一个"区域",你根据信标的范围和可见度进入和离开一个区域,而不是相反.不幸的是,Apple使用了区域这个术语,我们大多数人可能都认为它与MapKit有关,所以这增加了一般的混乱

这是坏消息:您只能扫描您知道的ProximityUUID,没有"通配符"proximityUUID.另外,CLBeacons不会暴露更低级别的CoreBluetooth内核,所以如果你想找到碰巧在你附近的所有信标,你将不得不使用CoreBluetooth,扫描外围设备,然后查看返回的外围设备并查询每一个他们找到信标.当然Apple既没有注册(使用Bluetooth SIG),也没有(但是)发布了iBeacon特性,所以你需要一个BT嗅探器来反向设计来自任何其他BLE设备的iBeacon.

  • 根据http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html,使用CoreBluetooth识别信标是不可能的 (3认同)

Piz*_*ola 5

每个APP都会使用它自己的特定UUID,使用"major"和"minor"整数值来区分信标.

例如,UUID将与一系列商店相关联,主要商店将识别商店,轻微过道,甚至是一组产品.

扫描未知的UUID不会非常有用,因为您的应用程序不知道如何处理这些信息.

使用终端中的"uuidgen"命令一次性生成UUID.

遗憾的是,没有协议实际与信标通信,因此没有标准来获取信标的位置或任何其他有用的信息.

如果我们可以打开与信标的连接(通常是最近的信标)并从中获取其他数据,而不必在同一个WIFI网络上,那将会好得多.

您必须使用bonjour通过WIFI与设备通信,或使用主要和次要ID从某种Web服务获取数据.


TNB*_*ech 5

遗憾的是,在没有事先知道proximityUUID值的情况下,您无法在此时搜索任意iBeacon.我已经尝试直接写入COREBluetooth,虽然你可以发现并连接到你所在地区的传输信标,但你得到的是与BLE UUID无关的乱码.因此,您甚至无法确认您连接的外围设备实际上是iBeacon.

这似乎不是BLE规范的限制,而是Apple强加的限制.似乎Android平台不存在此限制.

在此差距缩小之前,Android在此领域将比iOS更具优势.

我不同意先前的评论,即扫描UUID将毫无用处.相反,如果您知道信标UUID,则可以在云中创建信标/位置/主题的地图,并使用它来使用Web服务进行导航(假设信标已修复).您可以群集数据源,以便最终为所有想要编写位置应用程序的人提供非常丰富的信标UUID /位置对数据库.也许这就是苹果隐藏信息的原因; 为了自己的目的,他们可能会把这个拿回来.