2014-07-22 28 views
0

我有Jaalee信标。我尝试通过各种方式从各种手机连接到他们,包括ibeacon和核心蓝牙,但我一直获得新的标识符。这意味着如果我不移动并尝试iphone1,那么我会得到set1的beacon uuids,然后我尝试iphone2并获取set2,然后我尝试iphone1并再次获取set1。并且没有同时属于set1和set2的元素。在iOS中获取beacon的唯一标识符?

我尝试了其他变量和属性,但它们似乎都是常见的信标或各种iOS设备上的不同。如何解决这个问题?

+0

您需要联系制造商或使用iOS设备以外的其他设备进行逆向工程。如果他们发送iBeacon消息,您将无法使用核心蓝牙获取其静态唯一标识符,并且在知道其区域UUID之前,您将无法使用iBeacon API发现它们 - 而如果它们不是iBeacon格式,你首先必须弄清楚它们是什么。大多数其他具有BLE功能的平台(最近的Android,包括OSX在内的桌面等)都没有这种限制,因此更适合查明正在发生的事情。 –

回答

1

已解决。对于我的情况(Jaalee信标)我应该按以下顺序执行大量的动作:

  1. 信标扫描
  2. 店标,我发现到一个字典,并要求其服务清单
  3. 如果我得到的服务名单,然后我要求的特性列表
  4. ,如果我得到的特性列表,然后我请求 特点,我需要
  5. 值。如果前面所有的步骤都成功,然后我拿到信 proximityUUID,主要和次要这些都是合作mmon表示 “唯一标识符”

所有这些步骤都是异步调用的。另外,我应该删除我在与他们断开连接时发现的信标字典。如果信号灯仍然连接,我还应该检查一些步骤。

由于信标对象是异步调用的,因此我使用字典中的键的“太独特”的UUID。

+0

如果您的信标在iBeacon格式的广告数据包和BLE特性中暴露相同的信息,这似乎只有可能发挥作用。 –

+0

我无法尝试其他信标,但似乎我应该执行所有这些步骤。只有在最后一步,我才能决定我应该使用多少特征来获得唯一标识符:我只能使用proximityUUID,或者达到Apple建议的所有3个特征。 – user3798020

+0

不是。大多数信标没有提供独特身份的特征。你不应该单独使用区域UUID,因为在iOS上,你一次只能搜索一些独特的知识值,而你可以在每个区域找到4亿个独特的主要/次要组合。 –

0

我怀疑你每次看到不同的UUID的原因是因为你使用的是CoreBluetooth,而CoreBluetooth没有给你灯塔的ProximityUUID--它给你的iOS会随机生成蓝牙会话UUID。 See here for details.

如果您想要一个工具来计算ProximityUUID并且您有Mac,那么您可以尝试ScanBeacon($ 10)或免费Beacon CLI

完全披露:我是Radius Networks的总工程师,负责制作上述产品。

+0

第二个链接中断 – user3798020

+0

对不起,你是正确的。我们不得不重新回购以做出一些改变。我们将在接下来的几天内将其恢复使用,并且我们会在更新时对其进行更新。 – davidgyoung