我应该在iBeacon中使用macaddress还是UUID



我正在开发一个Android和iOS应用程序,需要读取iBeacons并在数据库中搜索id。这个Id应该是地址还是信标uid?

不幸的是,MAC地址和iBeacon UUID对于识别iOS上的信标基本上都是无用的。原因:

iBeacon蓝牙LE广告有四个标识符:

  1. MAC地址(48位)
  2. iBeacon UUID(128位)
  3. 主标识符(8位)
  4. 次要标识符(8位)

前两个标识符在iOS上是高度限制的,所以你不能有效地使用它们来识别信标。苹果阻止你读取MAC,这使得它在iOS上无法使用,苹果的api要求你在作为"过滤器"时预先指定iBeacon UUID;寻找信标的时候。这使得区分一个信标和另一个信标几乎毫无用处。

因此,在iOS上你真的需要使用major和minor字段来区分信标(如果有用的话,您可以将它们与UUID一起使用。)

Android没有相同的限制。您可以读取MAC,并且在查找iBeacon数据包时不必预先指定UUID。但是你可能想在Android检测中做和iOS检测一样的事情,只是为了保持简单。

最新更新