ios - iOS 上的应用能否在 BLE 的设备信息服务中实现固件版本字符串特性
问题描述
我想在 iOS 上创建一个 BLE 外围设备作为应用程序,并在设备信息服务中实现固件版本字符串特征。
当我做:
deviceInformationService = CBMutableService(type: CBUUID(string: "0x180A"), primary: false)
deviceInformationService.characteristics = [
manufacturerNameString,
modelNumberString,
firmwareRevisionString
]
peripheral.add(deviceInformationService)
调用回调时出现func peripheralManager(_ peripheral: CBPeripheralManager, didAdd service: CBService, error: Error?)
错误:
Error Domain=CBErrorDomain Code=8 "The specified UUID is not allowed for this operation." UserInfo={NSLocalizedDescription=The specified UUID is not allowed for this operation.}
当我使用蓝牙资源管理器从 Mac 连接到 iPhone 并读取设备信息时,它显示
Manufacturer Name String = Apple Inc.
Model Number String = iPhone10,3
这不是我在 CBMutableCharacteristic 中设置的。而且固件版本字符串也不存在。
有没有办法实现固件修订字符串?
解决方案
设备信息服务属于设备,而不是您的应用。您的应用与所有其他应用和操作系统共享 BLE 堆栈,因此您不能像这样覆盖系统范围的特征。
推荐阅读
- php - PHP向foreach循环内的变量添加查询(WP)
- microsoft-graph-api - 区分来自 Microsoft Graph 事件的接受和删除通知
- python - 调试模式下绑定元数据 RemovedIn20Warning
- php - 测试失败并出现完整性约束违规错误,但在第一个测试用例上它通过了。为什么?
- python - Python 是否可以使用键进行排序将项目在原始列表中的序号位置传递给我,而不是项目本身
- algorithm - 我们能否将任何无向图转换为有向图,使得每个顶点的入度和出度之差最多为 1?
- sql - 从字符串中删除 - 和 +
- python - 在 f2py 中处理字符数组
- php - Windows上的FFMPEG-PHP(不是Linux作为上一个问题)错误未知编码器'libfaac'
- javascript - 如何使用javascript和html动态地将字体真棒图标添加到按钮?