startRangingBeaconsInRegion vs startEstimoteBeaconsDiscoveryForRegion

After updating my Estimote iBeacons to the latest firmware and upgrading to the new iOS SDK a few weeks ago, I was no longer able to range estimote beacons using startRangingBeaconsInRegion. Instead, I had to start using startEstimoteBeaconsDiscoveryForRegion.

Has anyone else had this happen to them? Can anyone explain why this is now the case?

The reason I ask is because now, with having to use startEstimoteBeaconsDiscoveryForRegion, I can no longer access my estimote proximityUUID, name, etc without either authenticating via the cloud ( [ESTBeaconManager setupAppID:@APPID andAppToken:APPTOKEN] ) and polling the cloud for my beacon information, or by authenticating and then connecting directly to the beacon.

Hi Jonathon,

First of all - restart device, see if helps.
Secondly, setting up app id and token allows user to poll cloud info assigned to beacon.

Which device should I restart - my iPhone? If so, I've already done that ( numerous times ). If you mean the estimote beacon, are there any instructions on how to do that?

The primary problem is that when I first starting using the SDK, I could use startRangingBeaconsInRegion to find all the beacons. Now, I have to use startEstimoteBeaconsDiscoveryForRegion.

Realize that my main concern here relates to what the API says is the reason to have to use this method, which is "Method is useful for older beacons discovery that are not advertising as iBeacons.".

That concerns me because since I started using the cloud.estimote portal and all that jazz, now my beacons are being considered "older beacons" that aren't "advertising as iBeacons". I am just trying to understand why that is?

"That concerns me because since I started using the cloud.estimote portal and all that jazz, now my beacons are being considered "older beacons" that aren't "advertising as iBeacons"."
It's not because of using Using is not changing your beacons by any way so they are not deprecated or something like that.
startEstimoteBeaconsDiscoveryForRegion method is useful when update firmware fails. Then, beacon is in "boot mode" and can be find only by using startEstimoteBeaconsDiscoveryForRegion.
Also when you prefer to use pure CoreBluetooth framework you can user aforementioned method.
To sum up: if you tried to install new firmware and for some reason it failed, search for your beacon once again and start updateFirmwareWithProgress:completion method. After successful update your beacon will be visible to CoreLocation methods (startRangingBeaconsInRegion).
Hope it helps.

Thanks Ola. I wasn't sure if adding my beacons to iCloud had any affect on this matter or not, so thank you for clearing that thought up! Anyways, I have always kept the beacons firmware updated using the Estimote App (app store), but I haven't actually tried updating it via the iOS SDK to see if it had any affects.

I'll try that tonight and will let you know how that goes. Thanks again!

I am having exactly same problem. My app is fetching all beacons, even with other UUID. I am unable to get name. And it is failing on (startRangingBeaconsInRegion:) and works on (startEstimoteBeaconsDiscoveryForRegion:)

Any tips?

Hi KS,

Can you try Ola's suggestion, i.e. fetch your beacon via startEstimoteBeaconsDiscoveryForRegion: and run updateFirmwareWithProgress:completion?

As for your app fetching all the beacons - do you mean beacons that you don't own? That's expected.

As for being unable to get the name - are you authenticated with the Cloud service? (setupAppID:andAppToken: class method of ESTBeaconManager)