我正在开发作为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 ”。
如果有人有关于我的问题的信息,请告诉我。