• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 能否获取 iBeacon 的扫描响应

[复制链接]
菜鸟教程小白 发表于 2022-12-13 10:23:33 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 iOS 8.4 中的 Core Bluetooth API。我的代码正在与一个被编程为 iBeacon 的 BLE 设备进行交互。下面是我实现 CBCentralManager 协议(protocol)的 didDiscoverPeripheral 回调函数时生成的日志语句:

2015-09-04 16:23:08.231 CentralManager - 发现外围设备 [CBPeripheral: 0x1742e0b80,标识符 = 8B63C7F8-44D5-F3E2-AD40-2916A2513BA9,名称 = DfuTarg,状态 = 断开连接] 与数据 [[kCBAdvDataIsConnectable: 0 ]]

日志语句打印函数的 peripheral 和 AdvertisementData 参数的值。请注意,打印了外围设备的名称(顺便说一句:我碰巧知道 DfuTarg 是被扫描设备的正确名称)。

iOS 是从哪里获得这个名称的?它不是广告包的一部分。它必须来自辅助扫描请求/扫描响应交换,是吗?我的代码是否可以访问扫描响应?



Best Answer-推荐答案


是的,CBPeripheral 名称来自扫描响应。当检测到广告时,CoreBluetooth 会自动请求扫描响应数据(至少在应用程序处于前台时)。

didDiscoverPeripheral 方法会在设备接收到初始广告和扫描响应的信息后调用。本质上,您已经在使用该回调方法访问扫描响应信息。

需要注意的是,当广告被识别为 iBeacon 时,您无法访问此回调中的原始制造商数据。 iOS将其剥离,因此您无法访问它。这适用于广告和扫描响应中存在的制造商数据字节。

here了解更多信息。

关于ios - 能否获取 iBeacon 的扫描响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406363/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap