在iOS中获取信标的唯一标识符?

在iOS中获取信标的唯一标识符?,ios,bluetooth,unique,uniqueidentifier,ibeacon,Ios,Bluetooth,Unique,Uniqueidentifier,Ibeacon,我有Jaalee信标。我尝试通过各种方式从各种手机连接到它们,包括ibeacon和core bluetooth,但每次我都会得到新的标识符。这意味着如果我不移动并尝试iphone1,那么我将获得信标UUID的设置1,然后我尝试iphone2并获得设置2,然后我再次尝试iphone1并获得设置1。没有同时属于set1和set2的元素 我尝试了其他变量和属性,但似乎所有这些变量和属性对于信标都是通用的,或者在不同的iOS设备上都是不同的。如何解决此问题?我怀疑您每次看到不同的UUID的原因是因为您使

我有Jaalee信标。我尝试通过各种方式从各种手机连接到它们,包括ibeacon和core bluetooth,但每次我都会得到新的标识符。这意味着如果我不移动并尝试iphone1,那么我将获得信标UUID的设置1,然后我尝试iphone2并获得设置2,然后我再次尝试iphone1并获得设置1。没有同时属于set1和set2的元素


我尝试了其他变量和属性,但似乎所有这些变量和属性对于信标都是通用的,或者在不同的iOS设备上都是不同的。如何解决此问题?

我怀疑您每次看到不同的UUID的原因是因为您使用的是CoreBluetooth,CoreBluetooth没有为您提供信标的ProximityUID—它为您提供在iOS中随机生成的蓝牙会话UUID

如果你想要一个计算ProximityUID的工具,并且你有一台Mac电脑,你可以试试($10)或者免费的

充分披露:我是制造上述产品的Radius网络公司的总工程师。

已解决。对于我的案例(Jaalee beacons),我应该按照以下顺序执行许多操作:

  • 扫描信标
  • 将我找到的信标存储到字典中并请求其服务列表
  • 如果我得到服务列表,那么我请求特征列表
  • 若我得到特征列表,那个么我请求 我需要的特征
  • 如果前面的所有步骤都成功,那么我将获得beacon proximityuid、major和minor都是共同的代表 “唯一标识符”
  • 所有这些步骤都是异步调用的。此外,我应该从字典中删除我在断开连接时发现的信标。如果信标仍然连接,我还应该检查一些步骤


    UUID“太独特”,我在字典中用作密钥,因为信标对象是异步调用的。

    您需要联系制造商或使用iOS设备以外的其他设备进行反向工程。如果他们发送iBeacon消息,您将无法通过核心蓝牙获取他们的静态唯一标识符,并且在您知道他们的区域UUID之前,您将无法使用iBeacon API发现他们-而如果他们不是iBeacon格式,您首先必须弄清楚他们是什么。大多数其他支持BLE的平台(最近的Android、包括OSX在内的台式机等)都没有这一限制,因此更适合了解正在发生的事情。第二个链接是Brokersory,你是对的。我们不得不取消回购协议以进行一些修改。我们将在接下来的几天内把它放回去,到时候我会更新它。只有当你的信标在iBeacon格式的广告包和BLE特征中暴露相同的信息时,这才可能起作用。我没有可能尝试其他信标,但似乎我无论如何都应该执行所有这些步骤。只有在最后一步中,我才能决定我应该使用多少个特征作为唯一标识符:我可以只使用ProximityUID,或者最多使用苹果推荐的3个特征。否。大多数信标没有提供唯一标识的特征。您不应该单独使用区域UUID,因为在iOS上,您一次只能搜索几个唯一的已知值,而您可以在每个区域找到40多亿个唯一的主要/次要组合。我不应该,但我可以。另外,信标有“名称”,可以过滤一些额外的结果。不,大多数信标没有名称。您唯一可以依赖的是区域UUID、major和minor。