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, sometimes when I discover it I get its proper name, "SimpleBLEPeripheral", sometimes I just get (null)
. There doesn't seem to be any command I can send to the CBPeripheral to force a read update on the name, so how can I ensure that I actually get the advertised name of the peripheral?
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).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With