0
votes

Using CoreBluetooth I am trying to detect a BLE peripheral which is transmitting the advertisement and scan response packets.

Packet sniffer is able to find the advertisement as well as scan response data but iPhone only detects the scan response. So looks like iOS is rejecting the advertising data.

I am able to receive advertising data from other devices properly. Any possible debug starting points ?

Note: The periferal device spec indicates that it does not set the 3 optional BLE packet bytes while transmitting the advertising data.

1

1 Answers

2
votes

Advertising packets are used only to notify periodically any possible Central devices of the BLE device presence. The Advertising packet can contain information if the device can be connected to or not, and a few other data. Scan response should be the place where you should focus to pack important data.

On iOS you should rely on scan response to deliver the important identification data. On Android you have more flexibility, such as accessing both advertising packet and scan responses. Just to make sure you play along well with both platforms, keep the advertising simple so just the device is visible by any central, and store your data in scan response.