4

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

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

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

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

1 回答 1

2

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

于 2013-08-01T17:59:48.123 回答