Discrepency between startEstimoteBeaconsDiscoveryForRegion and startRangingBeaconsInRegion:

iPhone 5s / iOS 7.1.2 / Estimote SDK 2.1.0-2-gc34012e

3 Estimote Beacons (1 with factory settings and Name change, 2 with custom Proximity, Major, Minor and Name changes)

Both -(void)startEstimoteBeaconsDiscoveryForRegion:(ESTBeaconRegion)region; and -(void)startRangingBeaconsInRegion:(ESTBeaconRegion)region; describe that providing nil for region will discover/range all estimote beacons. But, providing nil for ranging does not "range" my beacons that I've customized where as providing nil for discovery does "discover" those same beacons.

Hi Eric,

There's a bug in startEstimoteBeaconsDiscoveryForRegion: which leads to proximityUUID being ignored. This is why you see different results when compared to startRangingBeaconsInRegion:.

So, if I understand your response correctly, I should expect to HAVE to provide a region value when discovering/ranging and I've changed my beacons proximityUUID's from the default Estimote value.

If I've purchased new beacons and have existing beacons, I will have to tell discovery/range to start for nil, a, b, c, .... regions in order to see all my existing modified beacons as well as the new beacons?

I'm not sure I understand your question, so let me cover 4 possible scenarios:

  1. Passing nil region to startRanging will get you all the beacons with the default Estimote UUID.
  2. Passing nil region to startDiscovery will get you ALL the beacons in the vicinity, due to the bug I mentioned.
  3. Passing a region with a set proximityUUID (e.g. the proximityUUID you set for your beacons) to startRanging will get you all the beacons with this proximityUUID.
  4. Passing a region with a set proximityUUID (e.g. the proximityUUID you set for your beacons) to startDiscovery will - again - get you ALL the beacons in the vicinity, due to the bug mentioned.

Does this help?

Piotr,

Thank you for this explanation. I've since read the header comments further and looked at your "Example" project closer. With this explanation and the understanding I was able to achieve from the headers and project, I now understand that I don't need to do both ranging and discovery. I was doing both and trying to "join" the returning lists. I didn't understand previously that discovery was intended for old "non beacon" support to be able to find and attach. I've since dropped the discovery call and things have gotten much better.

Thanks again,

EvL