核心蓝牙问题

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 键 哦,是的。我绝对设置了!

以上是关于核心蓝牙问题的主要内容,如果未能解决你的问题,请参考以下文章

蓝牙核心协议都有哪些

核心蓝牙框架

当应用程序未运行(终止/终止)时,如何保持核心位置和核心蓝牙运行?

核心蓝牙问题

核心蓝牙特征值写入错误

如何使用核心蓝牙 sdk 扫描蓝牙设备?