I\'m working on developing an app to communicate with a Bluetooth LE peripheral. The peripheral I am testing with at the moment is one of these. The interesting thing is, some
The only thing I have found that works around this problem is to start scanning and stop scanning, and eventually all the devices I expect to find in the physical space show up with non-nil names and non-nil UUIDs.
If you get the name from the advertisingData NSDictionary it will always be the name that is in the advertising packet sent by the peripheral.
However, if you read the name property of a CBPeripheral object, that name may vary. We try to provide the best name know to us at the time. If we have not yet connected to the peripheral, we will provided the name from the advertising packet. If a connection to the peripheral has been made in the past, we will have read the GAP name. We consider the GAP name to be a 'better' name than what is in the advertising packet (due to the size constraints of the advertising packet).