I need a simple Coordinate tracking app for iOS. After user install it (and set settings optionally) and click "Start" the app should activate and continue work in the background and collect coordinates and other info: - coordinates. calls (in out, phone number and optionally contact name) - sms (in out, phone number and optionally contact name, sms text) -Used application log. if Home screen is active - log "Home Screen" as App. - Log current web site URL in the default browser.
Write this stats into HTML format and upload it to the web site.
The app is designed for Jailbraked iOS.
## Deliverables
The application should have a simple UI:
- Start / Stop log button (when the Log is started - button shows "Stop")
- view log button (open dialog with the contect of current HTML log file)
- Settings dialog includes:
Device ID (string)
Test Upload (button)
Last sent file: Name, Size, Time (string)
Server reply: OK, or "error string"
- About/version dialog (App name, version, web site, License link)
After user install it (and set settings optionally) and click "Start Log" the app should activate and continue work in the background and collect phone usage info:
- Log current coordinate periodically.
- calls (in out, phone number, duration and optionally contact name)
- sms (in out, phone number and optionally contact name, sms text.)
- Used application log. if Home screen is active - log "Home Screen" as App.
- Log current web site URL in the iOS default browser (get URL each 5 secods, remember and log it if it is changed into a new value)
Other features:
- log format is a simple HTML block. Keept in memory or storage. each new day - new HTML block.
- Periodically upload log file to the web by simple HTTP post query (each 5 minutes). by Wifi or GPRS internet connection.
- Restart app and background log recording if phone is restarted.
- application type - freeware
HTML layout for log items (my comments below each tag)
<p class="gps-point" name="locationXXX" longitude="XXX" latitude="XXX" time="HH:MM" >GPS POINT</p>
<p class="url" time="11:41" href="[login to view URL]" >[login to view URL]</p>
<p class="app" time="HH:MM">App name</p>
<p class="in_call" time="HH:MM" dur="XX">Incoming call: 0792123234 ContactName</p>
<p class="out_call" time="HH:MM" dur=XX">New call: 0792123234 ContactName</p>
<p class="in_sms" time="HH:MM">SMS from 068193893 John Smith : sms text</p>
<p class="out_sms" time="HH:MM">SMS to 068193893 John Smith : sms text</p>
HH:MM - time in 24 hrs format
HTML layout for Test Upload html
<p class="app" time="16:10">Test Report OK Blackberry XXX XXX. ver1.0)</p>
(with Symbian version and app version)
Data Upload format:
POST query fields to [login to view URL]
"device" => device ID sring
"content" => "HTML" or "JPG"
"client-ver" => "iOS XXX YYY"
"app-ver" => "1.0"
"client-date-time" => 06/12/2011 10:13:01
"file-store" => append
"file" -> "[login to view URL]" or "[login to view URL]" (DD-MM-YYY)
Server replies:
"OK" or "Ok" - means sucessfull data upload.
"REJECT. ..." - stop uploading data for this day. resume uploading at next day only
(for example full reply - "REJECT. Server refuse upload due to Account restrictions.")
"UPDATE. ..." - stop sending any log files at all forever.
"BAD_DEV. ..." or "...not found... " - stop sending log files at all forever.
Uploads data each 5 minutes (if Device ID is set and Internet is ON, GPRS or Wifi or by cable):
- for html log - send just new portions of HTML log (each time remember size of HTML to calculate new portion size)
- if there is no Internet Connection - skip delivery untill next time (after 5 minute).
- depending on a server reply - pause delivery, or stop delivery at all or do nothing special (show last sended file in the Settings).
- if user clicks "Stop" program should write into Log "stop" event.
Test devices: iPhone 4. iOS 5.0 (Jailbraked)