ios - 警告:不允许使用广告密钥“服务数据”
问题描述
我正在开发一个 BLE 外围应用程序。根据要求,广告数据包必须包含服务数据字段。我在Android中做过这个,数据包应该是这样的:
0x16 是此处列出的服务数据字段https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/
同样的事情,我在iOS中做。我使用 BluetoothCore 框架来实现蓝牙外设。
下面是我应该用来设置服务数据字段值的属性:
advertisementData[CBAdvertisementDataServiceDataKey] = <somedata>
但是我收到了警告:
警告:不允许使用广告密钥“服务数据”
有人可以让我知道为什么以及解决方案是什么吗?
解决方案
在 iOS 上广告外围设备时,您不能指定服务数据。您只能指定服务 UUID 和服务名称。
从文档中:
advertisementData
包含您要宣传的数据的可选字典。广告数据字典的可能键在 中详细说明
CBCentralManagerDelegate
。也就是说,外围管理器对象只支持两个键:CBAdvertisementDataLocalNameKey
和CBAdvertisementDataServiceUUIDsKey
.
您的警告的解决方案是CBAdvertisementDataServiceDataKey
从广告数据字典中删除。
恐怕您对 iOS 的要求没有解决方案。
推荐阅读
- swift - 如何在 SwiftUI 中更改选项卡项目的颜色
- couchdb - 如何将 CouchDB 配置为仅接受具有特定 aud(受众)声明的 JWT?
- php - 在 laravel 之后的表单上丢失页码
- java - 华为 (Honor 8X) 上的滞后底片
- xml - 需要帮助在 xslt 中实现选择语句
- reactjs - 如何在 Ant Design Pro 中禁用 Umi UI 气泡?
- node.js - 如何从 Sentinel 获取 Redis 主机的主机名
- mysql - 尝试在与 Pomelo.EntityFrameworkCore.MySql 相关的 dotnet core 3.1 中添加迁移时出错
- c - 我可以安全地调用未知来源的函数吗?
- chatbot - 如何在 Rasa<->Google 聊天集成后从发送到 Rasa 服务器的环聊消息中获取用户电子邮件 ID