To all interested,
While developing a Mobile GPS Tracker using WRT and PS2.0 I came up with the following problems and feature requests.
First of all, using the Nokia N97 Mini, initializing the location service in a WRT widget ALWAYS throws an exception "security access error", unless the widget is installed on the homescreen.
On the homescreen, you nicely get asked whether you want to allow network access and gps location data to the widget, but once run separately from the application menu, no question gets popped up, and an error gets thrown.
This might be a major bug(?).
Secondly, once the phone gets to be in idle mode, the watchPosition calls DO continue. In my case this is exactly what i want, so thats fine. BUT, since i am trying to push all locations to a server on the internet using ajax, i came to a point where i noticed, TIMERS get paused or queued, and ajax calls when idle are NOT allowed.
This brought up a load of thought.
- Once idle, either DISCONNECT from 3.5G networks altogether, saving battery. There should be some way to do this scriptwise, and to resume it once the phone comes out of idle.
-- OR --
- Allow AJAX calls when the phone is idle, if theres no way to disconnect from the net, theres no use in pausing ajax calls either. This would suit me just fine too, so my tracker would be more "live" than it is now. This should also be togglable scriptwise. (YES, i want to continue ajax calls when idle, NO, i dont want to).
Same thing goes for timers, they seem to be paused and/or queued once idle. This is pretty sucky when you try to keep caching locations. I came up simple, but very filthy workaround, keeping a timestamp of the last location cached in memory, and checking it each and every time when watchPosition calls its success event, which DOES seem to carry on while idle. I think this is much more energyconsuming than I'd like it to be, and therefore, keeping the timer running would be much nicer.
Then about the location service.
I've seen theres an accuracy value returned (always null) and enableHighAccuracy argument that can be passed to the service object. Both seem to do nothing, but if they would, would still not be enough to build reliable services on.
I would very much like to
- Get a list of satellites and their signalstrengths, thus determining whether reception is OK myself
- Get the speed values returned improved, returning null only when reception is too poor.
Also i would very much like to help develop better location services in the api,
given there is more interaction between the phone(s) sensors and ps2.0.
Any solutions to the flow of thought above are strongly welcomed.
Thanks for reading.