Location/Tracking App for Android

Avg Bid (USD)
Project Budget (USD)
$30 - $250

Project Description:
We are looking for a simple app, like a service running in the background that will track the smart phone. User will not interact with the app.

The app must run just during a configurable period (like 8am - 2pm). Out of the period the app could be on hold/stand by. By default, it will run 24hs (0:00am - 11:59pm)

> When this period start (every day) or app start:
1) Check our ValidateService (POST+JSON) = datetime of last configuration (null if default) + imei + phonenumber + androidversion
1.1) If it returns UPDATE, it will include a new configuration file (JSON format) and app must replace/refresh the current;
1.2) If it returns REJECT, user must see a simple alert (text tbd) to contact us, and the app must stop; User will need to restart the device to recheck;
1.3) if it returns OK, go ahead, nothing to do! ;)

> When the period start:
1) Notify our NotificationService (POST+JSON) = USER_ON + datetime + imei 1) Turn GPS on

> During the period, every X (default 60) seconds:
1) Get the Position = location (lat and long) based on GPS and/or GSM (Fine Location) + datetime + Activity State (Moving or not for e.g.) + GPS Fixed + gsm signal (number) + battery power (%)
2) Sent the Position + imei to our PositionService (POST+JSON)

> During the period, if user turn on/off the mobile phone:
1) Notify our NotificationService (POST+JSON) = MOBILE_ON/MOBILE_OFF + datetime + imei

> During the period, if user turn on/off the gps:
1) Notify our NotificationService (POST+JSON) = GPS_ON/GPS_OFF + datetime + imei

> During the period, if user turn on/off the gsm data:
1) Notify our NotificationService (POST+JSON) = GSM_ON/GSM_OFF + datetime + imei

>When the period finish:
1) Notify our NotificationService (POST+JSON) = USER_OFF + datetime + imei 2) Turn GPS off

> Configuration File (JSON format):
This version, will contains only these fields: StartAt (HH:MM) - Default: 00:00
StopAt (HH:MM) - Default: 23:59
PositionUpdateInterval (Integer) - Default: 60

> Datetime
For all messages, the datetime must be when the message is generated; It must include the timezone.

> Avoiding Message Lost
If any error happen (e.g. sending a message to our services, device turning off), app must try to resend the message (or messages) on the next update. For Notification and Position Services, app must receive an "OK" or must try to resend it on the next update.

> Optimized
Please, avoid any battery drain! ;)
We would like to transfer the most simple data as possible. Cheap and fast traffic data!

> Your Recommendations
We are not mobile developers, so any recommendation will be appreciated, and we are able to adjust our scope for the best solution.

Skills required:
Android, Mobile Phone, Software Architecture
About the employer:
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.

$ 1030
in 25 days
$ 2061
in 20 days
$ 2478
in 15 days
$ 1029
in 3 days
$ 360
in 10 days
$ 1546
in 15 days
$ 1030
in 3 days
$ 721
in 14 days
$ 736
in 10 days
$ 994
in 18 days