iOS 不处理通用访问配置文件 0x24 (URI) 蓝牙广告?

问题描述

我们有一个关于使用 iOS 读取蓝牙广告数据的问题。

在我们的应用程序中,我们将蓝牙 SIG 组 URI 与 https://www.bluetooth.com/specifications/assigned-numbers/uri-scheme-name-string-mapping/ 中所述的数据字段用于我们的自定义数据。使用Android手机和Windows,我们可以按照规范解码数据就好了。但是,对于我们在 iOS 中的应用程序,我们看不到此类数据。

我使用 Android 手机和应用程序捕获了原始广告数据。它包含类型 0x01、0x02、0x08 和 0x24。 在 iOS 中,当中央管理器发现我的外围设备时,在广告键中解码以下类型:

  • 类型 0x02(服务类 UUID)在广告密钥 CBAdvertisementDataServiceUUIDsKey 中解码
  • 类型 0x08(本地短名称)在广告密钥 CBAdvertisementDataLocalNameKey 中解码

在 iOS 中,以下类型不会在广告键中解码:

  • 输入 0x01(标志),这没问题。
  • 输入 0x24 (URI),这就是我遇到的问题。

为了获得更多见解,我按照以下说明使用 BLE 数据包记录器:https://www.bluetooth.com/blog/a-new-way-to-debug-iosbluetooth-applications/

然后当我扫描我的 BLE 信标时,我得到的输出显示 iOS 可以读取较低级别的 URI 信息。它只是没有将它呈现给我可以将其作为广告数据处理的应用层,也许是因为 iOS 框架 CoreBluetooth 没有为通用访问配置文件 0x24 (URI) 定义广告密钥?

所以我的问题是您之前是否有过这方面的经验,或者您是否遇到过同样的问题?对此有解决方案吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)