Behavior of monitoring when application is in background


We have an application on iOS that uses estimote beacons. Our current behavior is that when the application is in running in the background, if we detect a beacon, we send user a local notification to open their app and enjoy the rewards. When the user opens the app, we at that time switch to ranging and identify the beacon for further processing.

What we are noticing is that, while running in background, the app is giving notification, even when the beacon detected is not one of ours. The problem is that it seems like apple allows only monitoring when the app is running in background and monitoring does not provide any way to constraint or filter the beacons in anyway. So when we detect any beacon, even if it belongs to some other application system, we jump up with joy and give the user a notification to open their app. Only when they open their app, can we identify the beacon. This does not lead to a good user experience.

I wanted to know how are other people handling such scenario.



Usually, people set a unique UUID for all their beacons to ensure they only detect their own ones. You can batch-change the UUID in the Estimote Cloud.

Use this tool to generate yourself a unique UUID:

Finally, redefine the beacon region you’re using to start monitoring and ranging to account for the new UUID.

Thanks. this was very helpful. I don’t know why we overlooked that.