核心蓝牙问题
Posted
技术标签:
【中文标题】核心蓝牙问题【英文标题】:Problems with Core Bluetooth 【发布时间】:2013-08-01 16:21:20 【问题描述】:我正在制作一个应用程序,其中 ios 设备必须同时是外围设备和中心设备。当它发现外围设备时,有时它的名称是型号(例如 iPhone),而不是实际名称(例如我的 iPhone)。在这种情况下,UUID 就在那里(当名称是实际名称时,通常是 (null)
)。我在startAdvertising:
中正确设置了名称,当发生这种情况时,advertisementData
中的相应键没有给出真实名称
如何确保真实姓名始终存在?
这就是我设置名称的方式:
[self.peripheralManager startAdvertising:@ CBAdvertisementDataLocalNameKey : [[UIDevice currentDevice] name], CBAdvertisementDataServiceUUIDsKey : @[SERVICE_UUID] ];
【问题讨论】:
【参考方案1】:除非正在投放广告的应用始终处于前台,否则无法保证广告数据(您正在搜索的特定服务除外)将可见。当应用程序移动到后台时,adv 数据被放入哈希中,以便在同时运行多个具有 corebluetooth 的应用程序与单个应用程序时具有相同的体验(因为 iPhone 本身只能宣传有限数量的数据)。但是,我注意到一旦在前台看到设备,如果应用程序移到后台,您仍然可以看到大部分广告数据。如果您有任何问题,请告诉我。
【讨论】:
您是否在广告字典中正确设置了 CBAdvertisementDataLocalNameKey 键? 我设置正确。 哈哈,好吧。它确实有所作为。 我指的是 CBAdvertisementDataLocalNameKey 键 哦,是的。我绝对设置了!以上是关于核心蓝牙问题的主要内容,如果未能解决你的问题,请参考以下文章