You have chosen to sponsor your bid up to a maximum amount of .
We need a software to be installed in any Android Cellphone:
The software must run as a service, or must be protected from turning off.
The app must auto start on boot
The device must send an UDP packet to a IP:PORT address every X minutes, indicating the GPS position, the date and time of that position, speed, and any other stuff that might be useful and is provided by the GPS, like satellites quantity.
Note: X is a value around 1 minute.
The packet must have the IMEI of the cellphone
The packet must have a unique id
The server will send an ACK with the same ID as the packet received. If this ACK is not received by the device, it must save the data in a queue and try to re-send it every one minute. The idea is not to loose packages, so the bigger the queue the better.
Note: Data must not be lost if the cellphone is turned off
If the device does not have GPS signal, it must send the report anyway, but with some flag indicating that there is not valid GPS. This way we get some sort of keep alive signal.
If the GPS is OFF, it must be indicated in another flag. This way we know for sure that the user turned the GPS off.
If the cellphone is moving to fast (vehicle driving for example) the packets must be send every half a minute (we will provide the exact equation, but there should not be any difficulty. At most the time will be reduced to half a minute)
It the user quits the application, or if the cellphone is turned off. A message should be send to the server indicating that situation and the date and time it occured. Maybe after reboot if it is not posible at that time.
The application must have a configuration menú. Where you can select IP , PORT and packets time interval.
Besides the application must be able to auto configure. Every 3 hours it must make a http request to a predefined URL where (maybe through JSON) it can get the new IP, PORT address and the interval time value.
Additional Project Description:
03/08/2013 at 5:16 ICT
The packet must have the battery state (charging, discharging) and charge remaining (%)
The source code must be provided at the end of the project