The iPhone XS Max and Garmin watch pairing cannot use BLE to send Scan Response; it can only send BLE advertisements. May I ask if this is a limitation of the Apple system? So far, we have tested several iPhone models, and only the iPhone XS Max has this issue. We are not sure if other untested models have the same problem.
BLE Scan Response
Under certain conditions, the app being in the background for a while, the iPhone screen off, etc. iOS will switch into a passive scan mode to save power. In that state it will not send a Scan Request, and will ignore any Scan Response packets.
If this is a device that has previously been paired, you may see some cached data from a previously received Scan Response packets, but that would don't be guaranteed.
I don't know what your use case is, but if you are trying to discover/connect/pair to an accessory in the background, you would need to make sure all your required information is in the ADV_IND packet.
Argun Tekant / DTS Engineer / Core Technologies
Dear Apple: Our operation steps are as follows: 1、 pair the Apple phone with the Garmin watch via Bluetooth. 2、When another app is in the foreground, use BLE Bluetooth to send a custom broadcast. However, since the data is quite large and cannot fit entirely in the broadcast, the remaining data is sent in the BLE Scan Response. The other device starts BLE scanning. 3、our BLE packet capture shows that the Apple phone does not send the BLE Scan Response. Currently, we have found that only the iPhone XS Max has this issue; it is still unknown whether other iPhone models have the same problem.