estimote/kontakt 如何识别特定的信标?
How estimote/kontakt identify a specific beacon?
我在 iOS 上使用 iBeacon,我试图识别每个信标以便根据每个信标附加一些信息,例如,我试图从 MAC 地址甚至信标名称。
我不能使用 Core Location Library,因为它只给我主要和次要的邻近 UUID,我需要一些东西来告诉我我扫描了哪个信标。
所以,我切换到核心蓝牙库,但在那里我无法检索 iBeacon 广告数据包,如果扫描的 BLE 在 iBeacon 协议上工作,iOS 将其隐藏。
问题是,例如 Estimote,如何识别他们的信标?
我怎样才能得到广告包?我想像在 Android.
中那样读取每个字节并获取信息
不幸的是,您根本无法使用 public API 来做到这一点。 CoreLocation 只提供 ProximityUUID,major 和 minor。 CoreBluetooth 阻止访问其前导码与 iBeacon 前缀匹配的任何数据包的原始字节。 API 都不会显示蓝牙 MAC。
Beacon 制造商经常构建使用单独的专有蓝牙 GATT 配置服务的配置应用程序。信标可以使用此专有服务和交换数据字段与 phone 进行双向连接,告诉您包括蓝牙 MAC 在内的所有标识符。不幸的是,除非您从制造商处获得规格或使用蓝牙数据包嗅探器对其进行逆向工程,否则您可能无法使用此类私有专有配置服务。
我在 iOS 上使用 iBeacon,我试图识别每个信标以便根据每个信标附加一些信息,例如,我试图从 MAC 地址甚至信标名称。
我不能使用 Core Location Library,因为它只给我主要和次要的邻近 UUID,我需要一些东西来告诉我我扫描了哪个信标。
所以,我切换到核心蓝牙库,但在那里我无法检索 iBeacon 广告数据包,如果扫描的 BLE 在 iBeacon 协议上工作,iOS 将其隐藏。
问题是,例如 Estimote,如何识别他们的信标? 我怎样才能得到广告包?我想像在 Android.
中那样读取每个字节并获取信息不幸的是,您根本无法使用 public API 来做到这一点。 CoreLocation 只提供 ProximityUUID,major 和 minor。 CoreBluetooth 阻止访问其前导码与 iBeacon 前缀匹配的任何数据包的原始字节。 API 都不会显示蓝牙 MAC。
Beacon 制造商经常构建使用单独的专有蓝牙 GATT 配置服务的配置应用程序。信标可以使用此专有服务和交换数据字段与 phone 进行双向连接,告诉您包括蓝牙 MAC 在内的所有标识符。不幸的是,除非您从制造商处获得规格或使用蓝牙数据包嗅探器对其进行逆向工程,否则您可能无法使用此类私有专有配置服务。