15

I'm new to Android development and am creating an app that allows a User to create a Geo fence around a specific location for reminders. For example: Making a geofence around a grocery store to remind the user as he enters to pick up Orange Juice.

Does anyone know of a tutorial that could help in developing something like this?

thedeepfield
  • 6,138
  • 25
  • 72
  • 107
  • 4
    http://stackoverflow.com/questions/4286439/location-alarm-for-android might be the feature you need. – zapl Aug 19 '12 at 18:34

2 Answers2

8

AFAIK there are no tutorials for geofencing, but it's pretty simple (assuming you want a circular fence).

  • This tutorial will tell you how to get the user's location
  • Any of these links will show you how to calculate the distance between their current location and the centerpoint for their fence
  • Calculate their distance from the center at regular intervals. I'd let them set the interval through a settings screen and start with a default around five minutes because anything more than that is a hefty battery drain. Store that distance every time you get it.
  • If their last distance compared to their new distance crosses the boundary, perform your action. For instance, I worked on an app that would alert a parent if the child left a friend's house or arrived at school.
Ginger McMurray
  • 1,275
  • 2
  • 20
  • 42
  • 1
    is it a good idea to have it checking on timely manner (battery issues)? What if the app is 'backgrounded' or even not running. How would you do a push notification to the user in those scenarios? – EdGs Jan 05 '13 at 01:13
  • 1
    It's definitely a battery drain, but when you register for updates via the LocationManager you have to specify a minimum time between updates. You could make that time be incredibly large and instead rely on the minimum distance between updates parameter, but you're not guaranteed a timely response that way. If your app is a background service you shouldn't have problems with it not being active unless the user's phone is experiencing severe processor drag. In any case, you can always trigger a notification via NotificationManager if that's what you're wanting to do. – Ginger McMurray Jan 07 '13 at 21:58
0

An new API called Proxim.io was recently developed that serves your purpose. The website is www.proxim.io. Here is a quote from the developer documentation:

Proxim.io is a platform for delivering relevant messages to your application users. Messages that are delivered based on real-time location, topics of interest, and geo-triggers. Messages can be delivered to a device via Push, or can be routed to a software system through an API (Web Events).