iOS 设备蓝牙名称和广播里的kCBAdvDataLocalName字段不一致的问题
这个问题只在iOS设备上才会出现,设备名称的缓存问题。
android手机上是一致的且与iOS设备上的kCBAdvDataLocalName字段一致,当出现不同时蓝牙调试app搜索的时候显示的是广播里的kCBAdvDataLocalName,但iphone设置里的蓝牙显示的是蓝牙名。
这里是关于蓝牙名称的官方描述
文章来源:https://www.toymoban.com/news/detail-730687.html
蓝牙设置了修改通道,连接过一次蓝牙后,修改的设备名称会变。文章来源地址https://www.toymoban.com/news/detail-730687.html
iOS蓝牙广播中可以获取的字段
字段名 | 对应字符串 | 含义 | 广播Type | 描述 |
---|---|---|---|---|
CBAdvertisementDataLocalNameKey | kCBAdvDataLocalName | 对应的值是一个字符串,描述外设的名称 | 0x09 | Complete local name |
CBAdvertisementDataManufacturerDataKey | kCBAdvDataManufacturerData | 对应的值是一个NSData对象,包含外设的产生的数据 | 0xFF | Manufacturer Specific Data: first 2 octets contain the Company Identifier Code followed by the additional manufacturer specific data |
CBAdvertisementDataServiceDataKey | kCBAdvDataServiceData | 包含特定服务的分发数据,该字典的key为代表着该服务的CBUUID对象.值为NSData对象 | 0x06 | Service: More 128-bit UUIDs available |
CBAdvertisementDataServiceUUIDsKey | kCBAdvDataServiceUUIDs | 需要公布的服务的UUID 数组 |
0x07 | Service: Complete list of 128-bit UUIDs |
CBAdvertisementDataOverflowServiceUUIDsKey | kCBAdvDataHashedServiceUUIDs | 代表着在公布数据的"overflow"区域能够被发现的服务的UUID的数组,因为存储在这个UUID 列表是最大努力的 并且不总是精确的.如果设备资源不足这些属性可能不会被公布. |
0x15 | Service Solicitation: list of 128-bit Service UUIDs |
CBAdvertisementDataTxPowerLevelKey | kCBAdvDataTxPowerLevel | 一个包含外设发射功率NSNumber的数字,如果外设在广播的数据包中,提供了他的Tx 功率级别时候,这个属性是可用的. 使用这个RSSI 值和电台功率,计算出路径损耗是有可能. |
0x0A | TX Power Level: -127 to +127 dBm |
CBAdvertisementDataIsConnectable | kCBAdvDataIsConnectable | 一个布尔值,标示公布事件类型是否为可连接的,对应这个Key是一个 NSNumber对象,你可用使用这个值来检查一个外设当前是否为连接状态 | ||
CBAdvertisementDataSolicitedServiceUUIDsKey | kCBAdvDataSolicitedServiceUUIDs | 一个代表着一个或多个服务的UUID
|
到了这里,关于iOS蓝牙开发中的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!