You have chosen to sponsor your bid up to a maximum amount of .
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
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.
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.