有时BLE扫描响应不包括kCBAdvDataLocalName

时间:2015-11-06 08:56:33

标签: ios bluetooth network-scan

我正在开发作为BLE中心的iOS应用程序 我对扫描响应信息有疑问。

我的应用程序正在前台工作,并且每3秒重复执行一次scanForPeripheralsWithService:options()。

[_centralMgr scanForPeripheralsWithServices:nil
                                        options:nil];

几乎在所有情况下,当调用didDiscoverPeripheral()时,我的应用程序可以使用密钥@“kCBAdvDataLocalName”获取外围设备的 localName
(外围设备由其他供应商开发)

以下是带有 localName 的didDiscoverPeripheral()的NSLog输出。

[MyApp] <Warning>: (-[MyBleCentralMgr centralManager:didDiscoverPeripheral:advertisementData:RSSI:]) 
    [name:DeviceName], [state:0], [identifier:240FF7D3-45D5-C4EE-2E96-BED578225C56]
[MyApp] <Warning>: (-[MyBleCentralMgr centralManager:didDiscoverPeripheral:advertisementData:RSSI:]) RSSI=-63, advertisementData={
        kCBAdvDataChannel = 39;
        kCBAdvDataIsConnectable = 1;
        kCBAdvDataLocalName = "DeviceName";
        kCBAdvDataManufacturerData = <[manufactorer data of peripheral device]>;
    }

但有时(在极少数情况下),扫描回复没有 localName (但它在[peripheral.name]中有另一个名字)

以下是没有 localNam 的didDiscoverPeripheral()的NSLog。

[MyApp] <Warning>: (-[MyBleCentralMgr centralManager:didDiscoverPeripheral:advertisementData:RSSI:]) 
    [name:DeviceName], [state:0], [identifier:240FF7D3-45D5-C4EE-2E96-BED578225C56]
[MyApp] <Warning>: (-[MyBleCentralMgr centralManager:didDiscoverPeripheral:advertisementData:RSSI:]) RSSI=-63, advertisementData={
        kCBAdvDataChannel = 39;
        kCBAdvDataIsConnectable = 1;
        kCBAdvDataManufacturerData = <[manufactorer data of peripheral device]>;
    }

外围设备的工程师说“我总是在扫描响应中包含 localName ”。

如果有人有关于我的问题的信息,请告诉我。

  1. 这种现象是否可能?( localName 从扫描响应中消失)
  2. localName advertisementdata和peripheral.name
  3. 的区别是什么

0 个答案:

没有答案