How can i use geofencing using Estimote IOS SDk

Hi
Am working with Estimote beacon for my IOS Application.its petty cool .Now i have a doubt how can i implement Geo fencing along with Beacons.

Hi again Shaik,

At this point , Estimote SDK does not provide ready solutions for geofencing. But you should try playing around with Region Monitoring and Ranging. the first of this methods is used to detect whether the receiving device is in the vicinity of a Beacon or not, and works in the background mode. Ranging, on the other hand, is used to approximate the distance between a Beacon and the receiver. You need an app to go into foreground to enable ranging.

@Ricardo: great answer, thanks for your contribution!

Cheers.

Hi there Shaik,

Thanks for posting. Could you elaborate a bit more on the issue? What exactly seems to be the problem and difficulty? When you tell us that, we will be more specific in addressing that.

In the meantime, you can read this article (http://community.estimote.com/hc/en-us/articles/201029223-RSSI-Range-Zones-Trilateration-and-Distance-Accuracy) to get a general idea on how location tracking works in this technology.

Keep us posted, cheers!

I have used your IOS Sdk to detect Beacons and to to my stuff . i have done well .now i need to add geo fencing on my application i dont have any idea on this so could you help with any sample code are document to add geo fencing..

Hi Shaik,

I believe your question doesn't necessarily relate to Estimote's SDK. There are so many ways in which you can implement a geo fencing feature, but, considering iOS' current version 7.1, you'll only be able to do so if your app is running either in foreground or background mode. Background mode means still running within the other apps at your task switcher, not closed.

Previously, iOS allowed apps to receive location notifications even when the app was not running (closed), but the feature was removed from iOS 7.1.

That being said, there's not much you can do besides playing with didEnter/ExitRegion methods or checking how close or far your beacons are using ranging. If you choose the ranging way, your app must have background location mode enabled in order to range when it is in background.

These docs will guide you through the process. Good luck.

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLRegion_class/Reference/Reference.html#//apple_ref/occ/cl/CLRegion

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLBeaconRegion_class/Reference/Reference.html

Hi Ricardo,

I am also looking into the geo-fencing functionality as this is one of the main powers of using beacons, for example if a customer has a shopping app installed but not running them when a user enters a zone with a beacon I would like the app to be notified. I was always under the impression that the app registers with the OS to listen out for beacons with specific given identifiers. Is this not correct?

Ive also been reading about iOS 7 and 7.1 changes and that it seems that iOS does now not fully shut down the app and allows geo-fencing to occur even if you forcibly close the app. See the below question on stack overflow.

http://stackoverflow.com/questions/21110368/geofencing-no-longer-relaunch-app-from-terminated-state-in-ios7

So as you can imagine I am a little confused about your statement above? If you can help clarify for me that would be great.

Thanks in advance for any help.

Hi Kevin,

In fact, there was a typo in my answer here. It should read "but the feature was removed from iOS 7.0" instead of "7.1"

The Stackoverflow question you mentioned was answered before iOS7.1 came out, so the answer is not necessarily correct, even though David Young is the person with the deepest iBeacon knowledge to date.

What happened was: Apple disabled Geofencing for -both- traditional “GPS” and iBeacon regions in iOS7. That upset many developers since their apps stopped working. The feature was working perfectly fine before iOS 7. Apps were triggered if a region was defined before the user closed the app.

Luckily, Apple restored the functionality in iOS 7.1. So now it’s possible to wake up your app again if you define any kind of CLRegion (gps or ibeacon) and set it accordingly.

http://stackoverflow.com/questions/12360386/didenterregion-works-in-foreground-but-not-background-or-other-vcs