ios - 核心蓝牙的问题

标签 ios objective-c core-bluetooth

我正在开发一个应用程序,其中 iOS 设备必须同时是外围设备和中心设备。当它发现外围设备时,有时它的名称是型号(例如 iPhone),而不是实际名称(例如我的 iPhone)。在这种情况下,UUID 在那里(通常是 (null) 当名称是实际名称时)。我已在 startAdvertising: 中正确设置名称,当发生这种情况时,advertisementData

中的相应键未给出真实姓名

如何确保真实姓名始终存在?

这就是我设置名称的方式:

[self.peripheralManager startAdvertising:@{ CBAdvertisementDataLocalNameKey : [[UIDevice currentDevice] name], CBAdvertisementDataServiceUUIDsKey : @[SERVICE_UUID] }];

最佳答案

除非正在转换广告的应用一直在前台显示,否则无法保证广告数据(您正在搜索的特定服务除外)可见。当应用程序移动到后台时,adv 数据被放入哈希中,以便在使用 corebluetooth 同时运行多个应用程序时获得与单个应用程序相同的体验(因为 iPhone 本身只能公布有限数量的数据)。但是,我注意到一旦在前台看到设备,如果应用程序移到后台,您仍然可以看到大部分广告数据。如果您有任何问题,请告诉我。

关于ios - 核心蓝牙的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17999438/

相关文章:

javascript - 如何让 React Native 像媒体播放器一样运行(可能是 "foreground")?

ios - 使用 segues 使用来自 Parse 的数据填充 tableView

ios - 使文本更靠近 UILabel 的中间开始?

ios - 核心蓝牙 iOS - 检索错误的外围设备

ios - 从 TableView 中删除时索引超出范围?

iphone - 将 UIView 添加到 ScrollView 时发生奇怪的事情

ios - WatchKit 错误显示自定义通知的时间太长。回落到静态

objective-c - 为什么 AudioServicesCreateSystemSoundID 内部抛出异常,却返回 0 作为错误码?

iphone - CoreBluetooth [警告] 未知错误 : 241

iphone - CoreBluetooth APIMISUSE(发送命令 - 外设未连接)