iOS 7 的核心蓝牙弃用
Posted
技术标签:
【中文标题】iOS 7 的核心蓝牙弃用【英文标题】:Core Bluetooth deprecations for iOS 7 【发布时间】:2013-11-14 17:26:49 【问题描述】:在 ios 7 中,一些核心蓝牙功能现已弃用,例如 CBUUIDGenericAccessProfileString 和 CBUUIDDeviceNameString。 apple docs 状态
"(Deprecated. There are no replacements for these constants.)"
我想知道我们应该做些什么来替换这些 GAP 东西,因为苹果文档和示例没有帮助。整个互联网似乎也对此保持沉默。我的代码与Heart Rate Monitor example 非常相似,它仍然有已弃用的代码
/* GAP (Generic Access Profile) for Device Name */
if ( [aService.UUID isEqual:[CBUUID UUIDWithString:CBUUIDGenericAccessProfileString]] )
[aPeripheral discoverCharacteristics:nil forService:aService];
【问题讨论】:
【参考方案1】:直接使用通用访问服务 UUID 怎么样?
if ( [aService.UUID isEqual:[CBUUID UUIDWithString:@"1800"]] )//0x1800 is the Generic Access Service Identifier
[aPeripheral discoverCharacteristics:nil forService:aService];
在此处查看Generic Access Service 的详细信息。
【讨论】:
嗯,这确实解决了弃用警告......但它并不能真正解释为什么如果我们应该自己手动重新制作常量,他们会费心去弃用常量!我认为苹果只是讨厌我们 另外,CBUUIDDeviceNameString 可以在这里找到:developer.bluetooth.org/gatt/characteristics/Pages/…,它是 0x2A00以上是关于iOS 7 的核心蓝牙弃用的主要内容,如果未能解决你的问题,请参考以下文章
iOS 核心蓝牙 CBCentralManager scanForPeripheralsWithServices 无结果