iOS omits manufacturer data from advertisement in background mode

Hi,
I work on iOS application which is using BLE for communication with our custom made BLE unit.
We want to send specific commands via BLE to the unit automatically.
When user is near unit and specific criteria are met, the app should connect to the unit, "login" the user, send command via BLE and disconnect right away.
These specific criteria are based on manufacturer data from advertisement (i.e. the unit is in "available to login" state when manufacturer data has last byte 0x01, when it's "NOT available to login", last byte is 0x00).
In foreground, this mechanism works flawlessly.

We want to do this even when app is in background or terminated (swipe up in dashboard on iPhone).

The mechanism we have implemented:
  • the unit has capability of acting as iBeacon

  • when unit is NOT available for login, the iBeacon is OFF

  • when it IS available for login, the iBeacon will turn ON and wakes up application, upon that the BLE scan will start in background mode

  • background mode setting is bluetooth-central

Problem here is that no matter what I tried, the advertisement:
  1. is not discovered at all (looks like it's timing issue?)

  2. when it's discovered, it does NOT contain manufacturer data


Did anyone come across something similar?
Any help is appreciated and have a nice day!
Richard
iOS omits manufacturer data from advertisement in background mode
 
 
Q