About the specifications of scan response acquisition in the background state

As a result, I judged this phenomenon to be an iOS bug.

In a technical article by some knowledgeable people, CoreBluetooth said that when it goes into the background, it goes into passive scanning instead of active scanning. So I actually checked. First, send the advertised data on the BLE module board. Next, when the app side receives the advertised data, it skips the scan request. When the BLE module board receives a scan request, it will send a scan response. As a result, the strange thing was that the app was able to get the scan response whether it was in the foreground or the background.

But it was one of confusion rather than joy. As a test, if the BLE module board side changes the data packet of the scan response while the application side is in the background state and resends it, the application side does not acquire the changed data. For some reason it returns the past scan response data acquired in the foreground.

Why is the specification to return the past scan response?

Or am I doing something wrong?

I saw the official documentation about this, but there is no description anywhere in the iOS specification. I don't care about any information, so I would like to borrow wisdom from all the experts.

thank you.

  • This question uses Google Translate. Therefore, some sentences may cause misunderstanding, so if you have any questions, please ask. I'm sorry for the trouble. Thank you in advance.

Add a Comment