I've been playing with my tracking app and made some changes since the release I posted so I'll describe how it currently works.
My tracking app collects data for mapping if the user allows it.
It ignores a random number of points when the app is started or comes out of hibernation/suspend.
It deletes a random number of collected points when the app is started or comes out of hibernate/suspend (this is because most of my tracks where to and from work so every end of journey showed where I started previously, not good for privacy!)
All tracks are identified by a personal GUID thats generated when the app is installed.
for collected data.
I collect only latitude and longitude. I give each collected points a sequence number rather than a date and time (again for privacy / speeding issues) to show the order they where collected.
I collect data every 100 meters. This is about one point every 3 seconds at 70mph so easily within most gps equipments capabilities.
I use an xml file because I had the code for this already.
the xml file name follows the format given by fibreoptic of GUID + date and time
I identify the user by guid in the file as an element (I have to prefix it with the letters ID as xml doesn't allow numbers at the start of an element)
I then use sequence number as an element (again prefixed with seqno)
then I add latitude then longitude
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="GPSTracker.xsl"?>
Frequency of upload
I dont send data in real time as its only for mapping at the moment.
I collect data for a day then upload it. (while testing I had some bugs so I was updating in real time but I've fixed that now).