[Alpha 0.2 Released!] Facebook Location - Update Facebook status with your location! - Windows Mobile Software Development

First I want to say a huge thanks to 'Avalon-99' and 'deedee' for testing my previous builds
Its Here!!
Well after some awesome testing over the past few days. Its came to the time to release the first actual release of FBLoc!!
What is FBLoc?
FBLoc is a small app that allows you to update your Facebook status with your current location, Either by CellID or more accurate GPS!
CellID: Gets your status based on the Cell Tower you are currently connected to, then querying its location and some info from your phone reverse-geolocate the co-ordinates returned by the program to an approximate address...
GPS: The same as CellID but instead of using the co-ordinates from a Cell Tower it uses the GPS co-ordinates and then returns the address at that location...
Download it now!!
Thanks,
-David
Copyright © 2011 David Bell / DavidTiger All Rights Reserved.
All Source Code, Compiled exe and DLL files are the copyrighted works of David Bell/DavidTiger.
You may use/redistribute any included samples or files, leaving credits where due.
You also may NOT attempt to dissasemble or reverse engineer any compiled distributables (exe/dll).

You will need to manually authorize my facebook app with your facebook account (to allow status updates from the mobile app)
1) Login to Facebook.
2) Click this link - CLICK ME!
3) Allow the facebook app
4) Click where it says "Click Here to get your access_token!"
5) Copy the access token without "access_token="
6) Create a text file called "key" should be of type .txt
6.1) in the txt file place your access token you copied
7) Copy the txt file into the FBLoc folder in program files on your phone
8) Run the app
9) Enjoy
10) Report any errors that you face!
Cheers, Dave

Sort of works for me.
Location is technically close enough, see screen cap, "A" is the found location, red circle actual. Program says "County Londonderry, BT52 2HU" which is wrong.
Not a biggie for postcode but location should be Coleraine.

I think it depends on how close the Cell Towers are to you at the time. And how accurate the database I'm currently querying is...
I'm adding some debug options, so when I'm out next week to my familys 100 miles away I can test its accuracy along the way
For me on the map its about the still some distance from my actual location..but I'm still getting the correct town and start of postcode (KA18 1)
(see my attached image)
EDIT: I have noticed (for me) that removing some points after the decimal on the co-ordinates gets it a lot more accurate!
See the 1st attached image for these coords: 55.4550,-4.2679
But then look at the 2nd image for these coords: 55.45,-4.26
Using only 2 places after the decimal brings my location to just a few hundred metres from my precise location
3rd Image: Shows latest build, showing approx street name and county, Which for only using CellID and no GPS what so ever then I think its pretty accurate...
I have attached to this post the latest build for anyone who can test it with the new coords settings, see how accurate it is for them!
Thanks, Dave

Hi, I tested it in Germany on my HD2.
I could find my Location. I'm living on the country and it found a Location 5 km from me.
I Click on Update Status and got the message Status Updated.
But on Facebook, nothing happend.

Location much better, now gives town correctly.
For some weird reason, and I am assuming its pure CellID swithcing if I move the phone 2" across the room, the address returned changes from no 2 to no 77.
Not updating my FB though.

Yea same for me, I'm sitting 3ft from a window and if the phone is on my left (close to the window) its one location.. if its on my right then it changes location by a few hundred metres...
@avalon: I'm not sure how good this may be outside the UK/Ireland...
For the facebook problem:
See my attached images of the steps I take to get the access_token
1) Allow the facebook app to access your data etc..
2) Click to continue to ur token
3) Your token
4) Then (for now) you have to manually create a text file called settings with your access code in there..
(ahh wait, just noticed!)
You only copy the actual code, leaving out "access_token="
so for me my code starts with "1943" because "access_token=1943"
Hope that fixes the facebook updating problem

I deleted access_token= and now it works fine
It works in Germany, but I live on the country and the cells are very large.
So it couldn't be very exact.
Sent using RapidRead!

Quick update & Test build!
Now includes GPS for those who want a more accurate location!
Let me know what you all think of the current progress...
Any ideas/suggestions post them up and I'll be happy to implement them..
Still to come:
Internal Authorization for Facebook (75% Done)
Ideas/Suggestions:
(Show location on google maps, via internal browser)
Cheers, Dave

Use CellID works good.
On Use GPS, I got after a while the message "An Error Has Occured".
I don't know, which error, maybe I have no GPS Fix?
Could you inlarge the buttons "Use GPS" and "Use CellID"

Hey, I have resized the buttons
Change Log (FBLoc4.rar):
Added Satellite info - see how many satellites are in view and how many are locked-on
Changed all error messages to slightly more meaningful errors, So you know what part is having an error.
Preview Images:
003: Shows my Cell ID Location.
004: Shows my GPS Location.
If you show both results on google maps, it shows you CellID can be pretty accurate
Click for >> Google Map Showing Both Points
Red = CellID
Blue = GPS
Let me know how this one works for you
-Dave

I have Satellite Count 7/8
LAT=50,27039801
I couldn't see LON, it's to wide.
Error message: " Error Getting GPS Location"
With CELLID, I found my Location.

Okay thanks, I know where the error is coming from. Just hard to say why its doing it.
You are getting a gps fix so its not a coordinate problem :/
I'll add add a few debug messages to find the exact line/position it errors.

Try this version...
I added some messagebox's so I can pinpoint where the error occurs... As its working for me I can't replicate the problem...
(Just a thought.. Are you connected to the internet, WiFi or 3G,GPRS etc??)
You need the internet connected to be able to convert the coordinates into a location
If your are connected then the error comes from somewhere else...

Hi,
i have an internet connection.
Here are my last messages:
- Waiting for Response
- Got Reponse
- Splitting Location Array
- Putting Array into variables
- Error Getting GPS Location

Doing some UK travelling later this week, I will try and run screen caps to check the CellID and GPS locations, see how close they are.

Ahh thanks, I now know where the error is coming from.. Now I just need to fix it
Try this ver, added more messages around the area where the error occurs.
Working messages should be:
"DEBUG: Var 1"
"DEBUG: Var 2"
"DEBUG: Var 3"
then 3 msgbox with the 3 location variables
And if all goes well then should say: "DEBUG: Return Found Location"
-----
Thanks, deedee
I'll be doing the same this weekend on a trip to my family.. a good 100 miles or so, and then a few trips to town aswell.. which is another 10-20 miles.
I'll have a good idea of accuracy hopefully by then end of it. Just now at my house the difference between GPS and CellID is about 410 ft apart

Hi,
the messages:
-DEBUG: Var 1
-DEBUG: Var 2
-DEBUG: Var 3
-DEBUG: 0
-DEBUG: 0
-Error Getting GPS Location
-DEBUG: finish

Okay, The problem lies in the splitting of the list it receives after getting the location..
WAIT lol.. I just remembered from previous apps I've made and then confirmed it..
Because your coordinates the separator is , instead of the expected decimal .
Which then is causing the error
Simple fix: Just check if the coords have , then replace it with . then it should be fixed!
EDIT: Test the attached build, please

Yes, you find it, my separator is ","
You are to fast, will test it
It works quick and fine.
Now I got "Error Update Status" on Facebook, if I tap on "Update Status"

Related

Problems with TomTom5 Upgrade on IIs

I have read all the posts I can find on TT5 and the IIs and have fixed a few of the following problems. I have yet to have any answer at all from TomTom support and it is now three days since I posted the issue with them:
"I have recently upgraded to Navigator 5 and have experienced a catalogue of faults with your new version. I have spent the weekend struggling with obvious issues with your unstable software whilst driving about 600 miles and I am seriously considering uninstalling version 5 and returning to version 3. Please respond to each of the following issues as soon as possible:
1. TomTom hangs when you try to close the application. Even after leaving it for up to an hour on the way home yesterday, the screen never unfroze and I had to re-boot. Still an issue, any ideas folks?
2. TomTom rarely runs more than once between re-boots. When you try to start TomTom for a second time the "two little hands" icon appears on the status bar but the PDA then freezes and has to be re-booted. Still an issue, any ideas folks?
3. When not running I get a message "Cannot execute \Windows\ttgpseng.exe" (see attached screenshot) Fixed by hacking the notification queue
4. The Navigate To screens do not show a keyboard on screen. This forces me to use the slide out keyboard on the PDA which is not practical. (see attached screenshot) Waiting on TomTom to patch?
5. When entering an address using the slide out keyboard the Fn key produces a n(tilda) character instead of being mute. This means that I cannot currently use postcodes or numbers when entering an address. (see attached screenshot) Fixed by installing postcodes properly
6. I welcome the new "Warn about POI" feature but it is fundamentally flawed compared to CheckPOInt which I used to use (and no longer works as you have not supplied a new SDK).
a. Your warnings are based on distance from the POI, not time. This means that it is not possible to set a warning which is appropriate to the speed which you are travelling e.g. if you set it to 500 yards/metres this is fine for POI in town but too short for motorway driving. CheckPOInt uses a 30 second warning which varies according to speed! Got round this by using speed rated POI's and setting different distances for different speeds i.e. Gatso30, Gatso40, Gatso70 etc
b. The only warn of POI on route feature is flawed since you cannot resolve which road a POI is on where the POI position is on an intersection. e.g. where a temporary speed camera location is on a bridge above a motorway you will not consider it on the route. (see attached screenshot) Sort of fixed this by only leaving mobile traps as "not on route", after all, gatsos, temps and specs are always on route.
7. Running TomTom changes the backlight settings on my PDA. I have my PDA set so that it will not turn off the backlight when on external power. Running TomTom changes this setting to switch off backlight when on external power. No fix, even through the thread on this forum
8. The change volume according to speed setting makes no discernable difference to the volume of voice instructions. I don't really understand how this works, does it increase the percentage and if so, how much? Anyone seen it work? I have volume on 100% all the time now anyway
9. If voice instructions are switched off and you tap the screen to get the next instruction to be spoken, the instructions are then switched on! You have to then return to the settings menu to switch it off again. Got round this by getting a "mute" voice pack off the web. Now I get silent instructions but still get POI warnings so no need to switch off instructions
10. The TomTom GPS unit often refuses to talk to the PDA without a re-boot. Often, even with patience, the GPS unit will be switched on and will not connect to the PDA. Once you re-boot, the GPS unit then connects and works. This is a constant problem with Nav 3 and 5. This is the bane of my life, any ideas?"
Thanks to everyone who has posting hacks and fixes on this forum, I only just found it but already it is improving my life!!! 8)
you said "When entering an address using the slide out keyboard the Fn key produces a n(tilda) character instead of being mute. This means that I cannot currently use postcodes or numbers when entering an address. (see attached screenshot) Fixed by installing postcodes properly "
does this mean that you have found a way to fix the n(tilde) coming up?, if so could you tell me how?
try this thread and it explains what to do but basically you download a file and put it in a folder called zip in your route of the device.
http://forum.xda-developers.com/viewtopic.php?t=22510&start=0
TOMTOM Patch released to fix Keyboard problems on XDAIIS etc
On the tomtom site now
How did you do point 3 - hacking the notification que, as I have exactly the same problem.
And what is it with Tomtom support, I have posted 3 separate requests for help over a 4 week period and no one has ever got back to me.
Regards
Glenn
AndySmee said:
I have read all the posts I can find on TT5 and the IIs and have fixed a few of the following problems. I have yet to have any answer at all from TomTom support and it is now three days since I posted the issue with them:
"I have recently upgraded to Navigator 5 and have experienced a catalogue of faults with your new version. I have spent the weekend struggling with obvious issues with your unstable software whilst driving about 600 miles and I am seriously considering uninstalling version 5 and returning to version 3. Please respond to each of the following issues as soon as possible:
1. TomTom hangs when you try to close the application. Even after leaving it for up to an hour on the way home yesterday, the screen never unfroze and I had to re-boot. Still an issue, any ideas folks?
2. TomTom rarely runs more than once between re-boots. When you try to start TomTom for a second time the "two little hands" icon appears on the status bar but the PDA then freezes and has to be re-booted. Still an issue, any ideas folks?
3. When not running I get a message "Cannot execute \Windows\ttgpseng.exe" (see attached screenshot) Fixed by hacking the notification queue
4. The Navigate To screens do not show a keyboard on screen. This forces me to use the slide out keyboard on the PDA which is not practical. (see attached screenshot) Waiting on TomTom to patch?
5. When entering an address using the slide out keyboard the Fn key produces a n(tilda) character instead of being mute. This means that I cannot currently use postcodes or numbers when entering an address. (see attached screenshot) Fixed by installing postcodes properly
6. I welcome the new "Warn about POI" feature but it is fundamentally flawed compared to CheckPOInt which I used to use (and no longer works as you have not supplied a new SDK).
a. Your warnings are based on distance from the POI, not time. This means that it is not possible to set a warning which is appropriate to the speed which you are travelling e.g. if you set it to 500 yards/metres this is fine for POI in town but too short for motorway driving. CheckPOInt uses a 30 second warning which varies according to speed! Got round this by using speed rated POI's and setting different distances for different speeds i.e. Gatso30, Gatso40, Gatso70 etc
b. The only warn of POI on route feature is flawed since you cannot resolve which road a POI is on where the POI position is on an intersection. e.g. where a temporary speed camera location is on a bridge above a motorway you will not consider it on the route. (see attached screenshot) Sort of fixed this by only leaving mobile traps as "not on route", after all, gatsos, temps and specs are always on route.
7. Running TomTom changes the backlight settings on my PDA. I have my PDA set so that it will not turn off the backlight when on external power. Running TomTom changes this setting to switch off backlight when on external power. No fix, even through the thread on this forum
8. The change volume according to speed setting makes no discernable difference to the volume of voice instructions. I don't really understand how this works, does it increase the percentage and if so, how much? Anyone seen it work? I have volume on 100% all the time now anyway
9. If voice instructions are switched off and you tap the screen to get the next instruction to be spoken, the instructions are then switched on! You have to then return to the settings menu to switch it off again. Got round this by getting a "mute" voice pack off the web. Now I get silent instructions but still get POI warnings so no need to switch off instructions
10. The TomTom GPS unit often refuses to talk to the PDA without a re-boot. Often, even with patience, the GPS unit will be switched on and will not connect to the PDA. Once you re-boot, the GPS unit then connects and works. This is a constant problem with Nav 3 and 5. This is the bane of my life, any ideas?"
Thanks to everyone who has posting hacks and fixes on this forum, I only just found it but already it is improving my life!!! 8)
Click to expand...
Click to collapse
from Olivier on an HP forum:
Download and install a small utility named "remover" from http://www.snapfiles.com/download/dlremover.html
Then run it and select "Notification Queue"
Remove any entry that suggests the GPS software...
Easy!
Re: TOMTOM Patch released to fix Keyboard problems on XDAIIS
Smudge2k said:
On the tomtom site now
Click to expand...
Click to collapse
Searched loads of forums for this as I'm having similar problems. I can't find this fix on the TomTom site. Is this the fix to bring back the on screen keyboard?
I have TomTom 5 running on the o2 XDAIIs and have the same issues:
1. Don't get the on-screen keyboard
2. The 'navigate to' option on doesn't appear on any of my Outlook Contacts
3. Tilda inserted when I press Fn key to get numbers, just downloaded the file for this & trying it now.
Other than that it's a fantastic bit of kit!
Does the full postcode lookup work for you in TomTom 5?
Apparently there is an issue if this doesn't work and you get the tilda uisng xdaIIs keyboard (I have xdaIIi so haven't seen this issue myself).
If postcodes do not work try re-installing them then creating a folder called 'TomTom' in the same dir as the 'zip' file (this contains the postcodes and is ~8MB), then performing a soft reset, this got postcodes working for me and apparently fixes the xdaIIs keyboard tilda issue.
Interestinlgy, I upgraded from TomTom3 to 5 and got the notification error. I rebuilt xdaIIi after a hard reset at weekend (upgraded to new o2 ROM), and if you install the TT5 upgrade after installing TT3 you don't get the popup message queue error
cheers
TomTom 5
Get the TomTom 5.1 upgrade - it files the ~ (Tilda) problem, as well as many more issues.
Postcodes not working? - Copy the "Zip" folder to "My Documents"
Problems with TomTom - view their support pages - it answers most of the issues in this post....
Postcodes not working? - Copy the "Zip" folder to "My Documents"
Yes, but this uses over 8MB of precious RAM.
Using the folder fix allows you to keep postcodes on SD card
I don't have any of these problems, but I don't use it on a BlueAngel, but on an old IPAQ 3970, and I don't use the TOMTOM GPS unit, I use a NavMan sleeve for that iPAQ. Works perfectly for me.
As for not seeing the screen keyboard, this is solved in 5.10 of TomTom so go download the update. It may fix some of your other problems too.
fk1team said:
Does the full postcode lookup work for you in TomTom 5?
Apparently there is an issue if this doesn't work and you get the tilda uisng xdaIIs keyboard (I have xdaIIi so haven't seen this issue myself).
If postcodes do not work try re-installing them then creating a folder called 'TomTom' in the same dir as the 'zip' file (this contains the postcodes and is ~8MB), then performing a soft reset, this got postcodes working for me and apparently fixes the xdaIIs keyboard tilda issue.
Interestinlgy, I upgraded from TomTom3 to 5 and got the notification error. I rebuilt xdaIIi after a hard reset at weekend (upgraded to new o2 ROM), and if you install the TT5 upgrade after installing TT3 you don't get the popup message queue error
cheers
Click to expand...
Click to collapse
Hi guys,
I've now got it all working I downloaded the TomTom 5.10 update and it's all fixed (fantastic!).
Now I've got the onscreen keyboard & no tilda issue with the hard keyboard
Full post-code entry
Navigate to from Outlook contacts
Thanks!!!

Map4Pda working on the Artemis - free GPS/Map software

For those who dont have any sat nav software or if you roam around the world - Map 4 PDA is excellent and its free!
You can choose map provider - google maps, yahoo maps, virtual earth or ask.com maps and it has satellite images too!
Detects the internal gps nicely and downloads the maps via gprs - n.b. data cost!
here is the link http://map4pda.com/download.1.4.htm
btw MGMaps for java midlet manager does not work even with risodoro updated midlet manager http://forum.xda-developers.com/showthread.php?t=286604
but the new midlet manager is worth installing and does so without a problem.
Hi
Thank you, thank you and thank you once again. I was really blown away by Micro$oftLiveSearch and then this program comes along...oh boy...all I can say is F***ING AWESOME!!! I would say these two programs belong in the Extended ROM (or at least immediately installed after a Hard-Reset) of every GPS-capable device. Now I only need a new provider contract with worldwide unlimited GPRS/EDGE access ;-) .
I would say the Artemis (O2 Orbit) is the best buy I did last year. I really like this device allthough it's a bit lacking speed and storage and the small display needs getting used to (had an Alpine before).
...bye DonQ
Map 4 PDA
Hello folks, Im new to the forum and have a quick question to ask.
First off, thanks alot for the Map4PDA - I have the artemis and believe this software to be very useful and professional - especially given that its free. This is a great alternative to shelling out £100 on TomTom. However does anybody know how to download and store various maps onto your phone, for instance if I wanted to store a map of central London and one of central Glasgow - then that way I could easily check the maps on my phone whilst out on the streets for directions? Further to this, my phone is constantly trying to connect to my GPRS which is annoying, if I had the pre-stored maps and was just looking at them then the phone wouldn't do this right ?
Any help is much appreciated!
Cheers
Bigj
bigj3000 said:
Hello folks, Im new to the forum and have a quick question to ask.
First off, thanks alot for the Map4PDA - I have the artemis and believe this software to be very useful and professional - especially given that its free. This is a great alternative to shelling out £100 on TomTom. However does anybody know how to download and store various maps onto your phone, for instance if I wanted to store a map of central London and one of central Glasgow - then that way I could easily check the maps on my phone whilst out on the streets for directions? Further to this, my phone is constantly trying to connect to my GPRS which is annoying, if I had the pre-stored maps and was just looking at them then the phone wouldn't do this right ?
Any help is much appreciated!
Cheers
Bigj
Click to expand...
Click to collapse
Welcome to the forum - I downloaded the maps connected to my pc & interner otherwise your gprs charges will be high. In the options set max no if images to 999 and no of files to 999.
The maps are kept in application data\searchquest\map4pda - so in theory you could download all the maps for a particular city and backup on your storage card. Then copy files back when in that city - a bit messy but works.
Also checkout windows live seach - http://wls.live.com/
I found it even better overall - I will add a writeup later.
Maps4PDA
Thanks for this Mark, I will await your reply! I have changed the settings to 999 for each but I am a little puzzled as to how to download and store the maps and also how to choose your map provider ? I am assuming thats what you mean when you point to windows live ? Maybe I'm being a complete dummy as this is all new to me! I used to own a Razor and cant believe how stupid I was, If I can get these maps that will be another area the phone blows the pants off of any other at the moment. Thanks for all your help!
Cheers
Big j
bigj3000 said:
Thanks for this Mark, I will await your reply! I have changed the settings to 999 for each but I am a little puzzled as to how to download and store the maps and also how to choose your map provider ? I am assuming thats what you mean when you point to windows live ? Maybe I'm being a complete dummy as this is all new to me! I used to own a Razor and cant believe how stupid I was, If I can get these maps that will be another area the phone blows the pants off of any other at the moment. Thanks for all your help!
Cheers
Big j
Click to expand...
Click to collapse
No problem - to change map provider - menu\map\map provider and there is a choice of 4.
Goto menu\map\satellite view - is one bit i love!
To save maps - try this connect device via active sync to pc - go on internet on pc - do not enable gps unless you want maps for where you are - menu\map\move to location - put in you location and download the maps you want.
Then through file explorer goto \application data\searchquest\map4pda\
and there will be many files inside - if you look at these with pictures and video app you will see them.
You can copy and paste all these files and name them the city for later use.
Worldwide?
I tried putting in an Australian Post Code and it downloaded US maps. Is this a worldwide program?
Likewise, my UK postcode landed me in the middle of San Francisco... more than a few miles off!
It seems to be only accurate with the names not the post code.
GPS works a treat, though, I got a fix sitting in my office building with another room above me, a building in front of me, a building behind me and not much in the way of open sky. The result; an impressive satellite photo of the office with a big red target on it... disturbing!
Still, very cool app, it's just an address search improvement away from perfection.
wodeh said:
GPS works a treat, though, I got a fix sitting in my office building with another room above me, a building in front of me, a building behind me and not much in the way of open sky. The result; an impressive satellite photo of the office with a big red target on it... disturbing!
Still, very cool app, it's just an address search improvement away from perfection.
Click to expand...
Click to collapse
Dont forget to check this out too - you wont be dissapointed - windows live seach - http://wls.live.com/ - I will add a writeup later.
__________________
Map4PDA
I have these problems too but as you say you can just type in the address with the Nation at the end to solve those ones. I've done all those things you say Mark but another quick question, are you only able to view these maps through the video or pictures settings? It's just the size of the screen is small and its a pain to constantly flick through pictures to find the appropriate map. Is there any way that you can save the maps so that you can open your map4PDA software and just navigate within the software, i.e. if you had the maps you could just use the stylus to scroll around within the area of maps you have downloaded? Have I explained myself clearly ??
Its also a pain when moving across the screen to a tile of map you dont have then the machine goes into overdrive trying to connect to GPRS to download the maps!
Any help is again much appreciated
Cheers
Bigj
bigj3000 said:
I have these problems too but as you say you can just type in the address with the Nation at the end to solve those ones. I've done all those things you say Mark but another quick question, are you only able to view these maps through the video or pictures settings? It's just the size of the screen is small and its a pain to constantly flick through pictures to find the appropriate map. Is there any way that you can save the maps so that you can open your map4PDA software and just navigate within the software, i.e. if you had the maps you could just use the stylus to scroll around within the area of maps you have downloaded? Have I explained myself clearly ??
Its also a pain when moving across the screen to a tile of map you dont have then the machine goes into overdrive trying to connect to GPRS to download the maps!
Any help is again much appreciated
Cheers
Bigj
Click to expand...
Click to collapse
Yes once you have downloaded all the maps you need - you can look at the maps through map4pda - when the gprs starts to connect - click on it and press disconnect. Make sure the map is not in full screen so you can make sure its not connecting again - or turn the phone part off i.e. fllight mode - click on the signal strength meter.
Google Maps images dont show but all others do? - Artemis
Hi
I just downloaded Maps4PDA 1.4.7.19608 and it works great with the internal GPS in the Artemis (T-Mobile Compact 3), but when I choose Google Maps as the map provider it downloads the tiles but just shows a white square with a black cross... the other three map providers work perfectly... has anyone else seen this behaviour?
I did install the .net compact framework (even though maps4dpa worked without it) but it made no difference?
Thanks
Hi. I'm Map4PDA for my 8125. I would like to save driving directions that I download, but when I shut down my device and restart the device, the driving directions are gone. Plus, I would like to save more than one driving direction. How does one go about doing this if one's GPRS has already been deactivated? By the way, I don't have a GPS device and I'm wanting to use the program for driving directions. Thanks.
bhosty said:
Hi
I just downloaded Maps4PDA 1.4.7.19608 and it works great with the internal GPS in the Artemis (T-Mobile Compact 3), but when I choose Google Maps as the map provider it downloads the tiles but just shows a white square with a black cross... the other three map providers work perfectly... has anyone else seen this behaviour?
I did install the .net compact framework (even though maps4dpa worked without it) but it made no difference?
Thanks
Click to expand...
Click to collapse
I am running into the same issue. After a while the map will come up, but it takes forever. When I switch to any other provider than goole the maps show up immediatley. I am alos unable to move the map to a location via a city name, postal code etc. the app seems to be searching but it locks up and never returns to the map. Anyone else experiencing this?
Sorry to repost, but does anyone know how to save driving directions on Map4PDA when one doesn't have a data access plan? Is there a way to save multiple driving directions (coming and going)?

LG KS20 & CellIDs

I've been trying for quite a long time to make my LG KS20 show me the CellID of the tower it is currently connected to. There are so many applications around the net that claim to do that, but unfortunately all of them just return 0 as current CID. I tried making my own application using the RIL's RIL_GetCellTowerInfo but I also always get 0. I tried signing my app with a temporary certificate, and adding that certificate to the phone but I still get 0. I tried different mobile operators and the result is always the same... And yet, Google Maps can identify my location without a problem so it is doable! Does anybody have any idea how to do that? Please, help, I'm getting very desperate here
I tried to get the cellId for a long time, but I think that's there's something blocking it in the RIL, that's why we always get 0 from RIL_GetCellTowerInfo.
As for GMaps, it never found my position automatically using celltowerid. Are you sure your position detection is not based on ip address ?
If I remember well, there are multiple ways to get celltowerid : 2 of these ways are rilnotifycallback and rilresultcallback.
I found a software( can't remember its name sorry, but if you're trying to get cellid I bet you know it) that could test each mode (perhaps 5/6 different methods) to try to get cellId. I remember that the 2nd one (was it result or the notify callback?) kind of worked. You have to :
- launch the (notify or callback) test mode -> return value is 0 .
- Then disable phone driver (easiest way is to go to airplane mode), -> the cellId, displays erratic values (000000 or fffff or whatever there is in memory at this place)
- Then enable phone driver (by going back to normal mode) -> the cellId display is right for a few seconds (it matched the values returned by another phone I had) but isn't updated after that.
Don't know if it helps you, but that's as far as I went concerning cellid.
Thanks for the info. Well, I tried manually writing C# code for RIL. Of course GetCellTowerInfo didn't work so I tried with DevSpecific. I bruteforced all the possible commands of the type {i, 0, 0, 0} but none of them seemed to work. Almost all of them gave an error "not implemented" or a basic error. Only {16, 0, 0, 0} returns an array of 20 bytes, but no combination of those gives the LAC (which I have via MiCard) so there's no CellID as well (as far as I know it would usually return the LAC combined with CellID). So it's a dead-end. The only thing I could not get up and running was querying the GSM modem directly through a COM port. I found that the RIL COM port should be 1, but no matter which command I send it remains silent. I disabled all the security in my device (it was in tier one mode before that) and signed all my applications with a personal certificate, which I added to the trusted certificates on my KS20. That didn't help as well. I think it's simply not implemented in the firmware of the radio.
And about Google Maps, well I found out that I actually used it via WiFi when I tried. Firstly I thoght it got the CellID because my laptop was running on the same WiFi, but "My Location" via maps.google.com just showed an error, while it was correct on my cell phone, but when I tried it elswhere and via 3G today, it showed me an error "Your location is not available now".
To wrap it up, as Google haven't come up with idea how to get CellID, probably I won't be able as well. But the topic still remains open (and if I come across new ideas, I'll definately try them). So if somebody has any other idea, I would really appreciate if he would share it.
i develop a geo location application my windows mobile phone is htc fuze with windows mobile 6.5
I want only to show me, Longitude and Latitude but i can't
I build this kowor.com/version/Kataskopos.apk
this link contain tha source but maybe it's not correct
Does anyone have any idea ?
I coulndn't succeed in getting the Cell ID to LG KS20 so I migrated to Android.
Anyway, to show the longitude and latitude you need GPS. If you don't have one, you could use Cell ID but it will give you a big error (typically around 1.5 km) and you still need to send the Cell ID to a database online which will convert it to geo coordinates (databases like Open Cell ID).
Good luck!

How to debug device or carrier bugs?

Hi,
I am experiencing a serious problem. I recently released an updated on my app "Funny Jokes" from modern creation. The update is meant to enhance the user experience by adding a few new cool features. However, since the update, there are a small number of users experiencing "Initialization Failure" when starting the app. According to my code, this error only happens when the internet connection is spotty. However, the users report that they have perfect good 3g or wifi. I have no idea what causes this error since it works perfectly fine on my own phone, the simulator and a few friends who have installed my app. However, since angry customers tend to leave reviews, the reviews since the update have been mostly negative. Its really hurting my app. Is there any way that Microsoft can help me debug this problem? since I don't have all the devices on all different carriers? I really don't know what to do at the moment.
Also can some of the developers help me on this problem? I am here attaching the xap file, will you please let me know if the app works on your phone and if it doesn't, can you please let me know what device you use, your carrier, and country. Thanks very much.
Works fine for me (Samsung Focus, HTC Surround, both ATT), no errors at all. BTW, you may check proper handling of advertising control (try-catch, check if null etc.)
P.S. As for your app design: you definitely should add an option to change text size! Default font is too small...
Also, button or item "Instant joke" (randomly selected but of course not repeated!) will be great.
Hi, sensboston,
Thanks for your help and suggestions. I will implement the two suggestions in the following updates. Are you from Boston area? Really appreciate your input. I am really bothered by some users not able to open the app correctly. I really want to help them, but don't know how.
Hi,
Looking at your code I think your real question is "Why is my Azure odata connection / query failing for some users"?
Do you know if it is *always* failing for those users - i.e. every single time - or does it occasionally happen?
If it's *always* failing for certain users:
- It may not be a connection error that your code is detecting, perhaps the error could also be a problem with the query you're issuing. I notice you dynamically build it in the LoadMessages() method (on the string.format line) using App.LastMessageID; is it possible that certain values will cause an invalid query? Is it possible for them to become corrupt, *or null*, etc. for some users? Write some code in to check they are valid values before using them (and use defaults if they are null or invalid) - i.e. just before the string.format line. A null won't cause string.format to fall over, but it will mess up your query.
- I see you are storing LastMessageID in IsolatedStorage on the phone - this makes me wonder if the settings from a previous version of the app are confusing the current version, or if it's become corrupt some other way. Remember that issuing an update to an app does not reset the application's settings (e.g. IsolatedStorage) back to defaults. E.g. Is there a scenario where for certain users since the update their App.LastMessageID has become null or set to an invalid value? It's an easy one to miss because the emulator always starts 'fresh', and when you ask friends to test it's usually just on the latest version (they might not have installed it over a previous version). Again, check your values before the string.format line for nulls or validity.
If it's occasionally failing:
- Your code isn't handling the fact well enough that Internet connections can drop at *any* moment - even for a micro-second - and users won't necessarily notice that (and tell you their signal was fine). Code always needs to handle that kind of eventuality any time you make a connection to a web service (such as Azure). At the moment you are just outputting a message box message and then just letting the app do nothing else which will frustrate users - you could instead have a screen with a 'retry' button, and maybe even something that will send/email you an error report if it keeps happening (you could include the error's message and inner exception etc.).
- It may be that Azure is returning an occasional error - even the best databases get occasional temporary errors for a variety of reasons (too many users, internal connection error,...). You need to detect and handle that in the same way as internet connection errors.
I don't think it's to do with carriers or phone type unless they are blocking access to the azure url / ports you are using - that sounds pretty unlikely as Azure is such a well known service, especially on WP7.
Just as a final thing (maybe not important) your code's logic doesn't handle the scenario of 'no error is returned but at the same time 0 messages are returned' and same for 0 categories (perhaps this isn't possible).
Hope that helps, and best of luck fixing it.
Ian
otherworld said:
Hi,
Looking at your code I think your real question is "Why is my Azure odata connection / query failing for some users"?
Do you know if it is *always* failing for those users - i.e. every single time - or does it occasionally happen?
If it's *always* failing for certain users:
- It may not be a connection error that your code is detecting in the completed event - perhaps the error could also be a problem with the query you're issuing. I notice you dynamically build it (on the string.format line) using App.LastMessageID; is it possible that certain values will cause an invalid query? Is it possible for them to become corrupt, *or null*, etc. for some users? Write some code in to check they are valid values before using them (and use defaults if they are null or invalid) - i.e. just before the string.format line. A null won't cause string.format to fall over, but it will mess up your query.
- I see you are storing LastMessageID in IsolatedStorage on the phone - this makes me wonder if the settings from a previous version of the app are confusing the current version, or if it's become corrupt some other way. Remember that issuing an update to an app does not reset the application's settings (e.g. IsolatedStorage) back to defaults. E.g. Is there a scenario where for certain users since the update their App.LastMessageID has become null or set to an invalid value? It's an easy one to miss because the emulator always starts 'fresh', and when you ask friends to test it's usually just on the latest version (they might not have installed it over a previous version). Again, check your values before the string.format line for nulls or validity.
If it's occasionally failing:
- Your code isn't handling the fact well enough that Internet connections can drop at *any* moment - even for a micro-second - and users won't necessarily notice that (and tell you their signal was fine). Code always needs to handle that kind of eventuality any time you make a connection to a web service (such as Azure). At the moment you are just outputting a message box message and then just letting the app do nothing else which will frustrate users - you could instead have a screen with a 'retry' button, and maybe even something that will send/email you an error report if it keeps happening (you could include the error's message and inner exception etc.).
- It may be that Azure is returning an occasional error - even the best databases get occasional temporary errors for a variety of reasons (too many users, internal connection error,...). You need to detect and handle that in the same way as internet connection errors.
I don't think it's to do with carriers or phone type unless they are blocking access to the azure url / ports you are using - that sounds pretty unlikely as Azure is such a well known service, especially on WP7.
Just as a final thing (maybe not important) your code's logic doesn't handle the scenario of 'no error is returned and at the same time 0 categories are returned' (perhaps this isn't possible).
Hope that helps, and best of luck fixing it.
Ian
Click to expand...
Click to collapse
Hi, Ian,
Wow, what a great reply. I am so grateful for your inputs.
From the reviews, it seems that the app is always failing, and even when users uninstall/reinstall doesn't solve the problem. However, the previous version didn't have this problem. Which leaves me to believe is not the problem with IsolatedSetting. However, its definitely a good idea to check if the LastMessageID is null before using it.
Another speculation is that my new version uses a WCF service hosted on azure, while my previous version only used odata connection. I am guessing the WCF service on azure is not available to all carrier and devices. But the question is that they should see a different error instead of the reported one. And I was hoping to reproduce this problem so I can be confident that its fixed in my next update. Without being able to reproduce it, it makes everything just a little bit harder.
Another suggestion: you may simulate "no connectivity/very slow connection/Azure service not responding" issues by using "tethered" PC connection (if your handset connected to PC via USB cable, it uses your PC connection). Install traffic shaper (like NetLimiter) and try to play...
sunxin8086 said:
Are you from Boston area?
Click to expand...
Click to collapse
Yep.
Thanks, I will try to play with it. however, its desirable to let the app quit when there is no connection. But some users report they experience this error when they have perfect connection.
I can recreate it (the error) on a device it would seem consistently (tried about five times)
Uninstall it if already installed and reboot
reinstalling it (I'm using the Application Deployment tool for this)
reboot the device
Run it: First time I run it I get the error, second time (and subsequent) it's fine.
Note that before running it (and getting the error) I have checked I have internet (e.g. by loading a page in IE). This happens using sim card, wifi, or tethered connection (with wifi off) - tethered should be pretty reliable so can't see that being a connection drop.
This is on an LG panther pre-nodo developer device.
Hope that gives some clues.
All the best,
Ian
Hi, Ian,
Thanks for your update. Were you able to recreate it on a post-nodo device? unfortunately, I don't have a pre-nodo device at my hand.
I don't have a post-nodo device handy to test it on unfortunately. It seems to be happening only soon after startup (it's ok if I leave it a while) as though something on the phone isn't ready yet. Maybe it's not the same therefore as what your users are experiencing (as it's not 'always') but if you think it will help do a version of the xap which outputs the exception message in the message box (just for testing purposes) and I'll see what it says.
Hi, Ian,
Thanks. Last night, I made a new version that generates an email with exception info when initialization failed. Also checks the LastMessageID to see if its null. Let me know if this fixes the problem, and if not, send me the exceptions, please. Thanks for your help.
Hi,
The error report you generate is at the bottom of this message. As you can probably see (if I'm reading it correctly) the error (for my device at least) is not actually the loading of the categories - it seems to be the when you open the push channel as you have no try catch around that.
Note the interesting .net behaviour (if I'm reading your code correctly) that when you first check the error in LoadCompletedEventArgs 'e' of categories_LoadCompleted it is null, but when you subsequently check it - after the open push channel attempt - it contains the push channel exception. It must just retrieve the latest async open error (i.e. that of the push channel not opening).
I would suggest you wrap your push channel open code with a try catch that does the following:
catch (InvalidOperationException e)
{
HandleInvalidOperationException(e);
return;
}
catch (Exception e)
{
// if you're here it's most likely an error in your code rather than one with the push channel
}
This is the sort of things I check for and handle appropriately (if you find a way of checking a code or enum rather than a string match on the message text let me know):
private void HandleInvalidOperationException(InvalidOperationException e)
{
if (e.Message == "Channel not opened")
{
//This exception is raised when a notification channel has not been opened yet for raw notifications.
}
else if (e.Message == "Failed to open channel")
{
//This exception is raised when the notification channel failed to open. Try opening the notification channel again.
}
else if (e.Message == "Channel quota exceeded")
{
//This exception is raised when either trying to open more than one notification channel per application, or when trying to open more than 15 notification channels per device.
}
//InvalidOperationException(Notification server temporarily unavailable)
else if (e.Message == "Notification server temporarily unavailable")
{
//The Microsoft Push Notification Service is unavailable.
}
// unknown if you reach here
}
I also check if there is a channel uri after opening (there sometimes isn't) and if there isn't I set a timer to check it every second until 60 seconds have passed. If it reaches 60 and the uri updated event hasn't fired I assume that the device's power level is too low for a push channel at the moment (about 25% battery will do this on some devices).
It sounds like you could just continue past your current issue though -i.e. your problem may well be the Push call, not the load categories, so with the right try catch etc. (with a revised/recoded check on whether the categories have loaded) you could always continue into the app with a gentle warning that push might be down. Have a play with that second error check in the load categories completed event - you might instead want to have that second 'if' as an 'else if' so that it doesn't get confused by subsequent errors (i.e. other than the categories loading service call).
Hope that's helped.
Cheers,
Ian
Your error report:
Query URL: /JokeCategories?$filter=Hidden eq 0
Outer Exception Message:
Failed to open channel
Outer Exception StackTrace:
at Microsoft.Phone.Notification.SafeNativeMethods.ThrowExceptionFromHResult(Int32 hr, Exception defaultException, NotificationType type)
at Microsoft.Phone.Notification.HttpNotificationChannel.Open()
at FunnyJokes.MainPage.SubscribeToPush()
at FunnyJokes.MainPage.categories_LoadCompleted(Object sender, LoadCompletedEventArgs e)
at System.Data.Services.Client.DataServiceCollection`1.<>c__DisplayClassd.<>c__DisplayClassf.<BeginLoadAsyncOperation>b__b()
at System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi, Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark)
at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
at System.Delegate.DynamicInvokeOne(Object[] args)
at System.MulticastDelegate.DynamicInvokeImpl(Object[] args)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.Dispatch(DispatcherPriority priority)
at System.Windows.Threading.Dispatcher.OnInvoke(Object context)
at System.Windows.Hosting.CallbackCookie.Invoke(Object[] args)
at System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(IntPtr pHandle, Int32 nParamCount, ScriptParam[] pParams, ScriptParam& pResult)
Hi, Ian,
I think that must be it. That totally explains why a small number of users would get this. However, where I am confused that categories_LoadCompleted is the handler for when categories load finishes, and takes LoadCompletedEventArgs, it should only be triggered in the above case. Why failing opening a channel also leads to this handler is puzzling me. Is it feature of .Net or a bug?
To be more specific, if open the channel failed, shouldn't the myPushChannel_ErrorOccurred method called instead of the categories_LoadCompleted? I am deeply confused now.
You just have to check for errors in two places (and you're currently only checking in one) - it would be nice if the error event handled everything but unfortunately it can't; e.g. take the 'InvalidOperationException ' case of no channels being left on the device (quota exceeded), if there's no channel ever created in the first place then there's nothing to assign the error event to anyway; hence why you need to check both on initialisation (with the try catch around the open - see above), and once you've set it going (with the error event).
In your error event you can check what the problem is using a nice enum:
switch (e.ErrorType)
{
case ChannelErrorType.ChannelOpenFailed:
break;
case ChannelErrorType.MessageBadContent:
break;
case ChannelErrorType.NotificationRateTooHigh:
break;
case ChannelErrorType.PayloadFormatError:
break;
case ChannelErrorType.PowerLevelChanged:
// 0 is normal, 1 is low, 2 is critical
if (e.ErrorAdditionalData == (int)ChannelPowerLevel.LowPowerLevel || e.ErrorAdditionalData == (int)ChannelPowerLevel.CriticalLowPowerLevel)
// note a value of 0 here is not an error
break;
}
Ian
Thanks Ian for the explanation. I got this part, however, what still puzzles me is why the InvalidOperationException got captured in the categories_LoadCompleted method. shouldn't this method only called from within the odata class? Is this a feature of .net or a bug??
I agree it doesn't seem to make sense You have no try catch, yet the exception is seemingly being bubbled up a level and then contained somehow within your categories_LoadCompleted method.
The reason is found by decompiling the DataServiceCollection class. Here's part of what happens when you call LoadAsync - notice that when an error occurs (i.e. the push channel exception) your completed event is actually being called a second time (as it is contained in the bolded try catch below), and this time it contains the new InvalidOperationException. Obviously you'll need to code around this behaviour. You'll probably be fine knowing that, but is there a way you can keep the code in the completed method just for completion of loading categories (and subscribe to push, load messages, etc. elsewhere)? It might be good to do that just to help avoid encountering the same confusing situation elsewhere.
Hope that helps!
Ian
Code:
private void BeginLoadAsyncOperation(Func<AsyncCallback, IAsyncResult> beginCall, Func<IAsyncResult, QueryOperationResponse> endCall)
{
this.asyncOperationInProgress = true;
try
{
beginCall.Invoke(delegate(IAsyncResult ar)
{
Deployment.get_Current().get_Dispatcher().BeginInvoke(delegate
{
try
{
QueryOperationResponse queryOperationResponse = endCall.Invoke(ar);
this.asyncOperationInProgress = false;
if (this.LoadCompleted != null)
{
this.LoadCompleted.Invoke(this, new LoadCompletedEventArgs(queryOperationResponse, null));
}
}
[B]catch (Exception error)
{
this.asyncOperationInProgress = false;
if (this.LoadCompleted != null)
{
this.LoadCompleted.Invoke(this, new LoadCompletedEventArgs(null, error));
}
}[/B]
}
);
}
);
}
catch (Exception)
{
this.asyncOperationInProgress = false;
throw;
}
}
You are the man. Yeah, I plan to keep the loadCompleted method clean, so I will try to catch the exception in the subscribeToPush method. Thank you so much for all your help. Couldn't do it without you.
Hi, Ian,
Hope you can see this. I pushed out an update with the error reporting for my app two days ago. The version was pushed before I realized the error has something to do with Push Channel failed to open. However, from the user report, I found another rather interesting and confusing error.
Query URL: /Messages?$filter=Hidden eq 0 and Version eq 1,5 and ID gt 0
Outer Exception Message:
An error occurred while processing this request.
Inner Exception Message:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code></code>
<message xml:lang="en-US">Syntax error at position 29.</message>
</error>
At first, its kinda shocking to me that why my Version was transformed to "1,5", instead of "1.5"(comma instead of period). After googling it, I found it has something to do with CultureInfo. Wow, I would never thought about this, if I don't get an error report. Supporting multi-region is a lot tougher than I thought.
You have to be careful anywhere you use dates, doubles, etc. as string.format (or most string methods) format them according to regional settings of the user - so unless you specify otherwise a user in Germany will see 1,5 whereas a UK user will see 1.5. This is a good thing usually as people get to see numbers and dates in the format they're used to.
You can get round it (when you need to have it a specific way e.g. for your query) using the InvariantCulture (which tells it to not use the current region's settings). E.g. for your versionid:
string.Format(CultureInfo.InvariantCulture.NumberFormat, "{0:0.0}", VersionID);
Will always (off the top of my head - make sure you test it) output using a decimal point rather than a comma.
A simpler way for you might be just to store the version ID as a string in the first place if that doesn't affect anything.
You can test all this in the emulator by e.g. changing the country to Germany and seeing if everything still works.

Motorola Defy GPS Problem Solved (to use offline LTO-AGPS) (updated 3 Aug 2012)

Firstly thanks popcorn1122 so much for amazing improvement of A/GPS here
For my findings, some parameters in the <hal> paragraph of /system/etc/gpsconfig.xml could also be added to enable the offline LTO-AGPS (Need rooting, and pls backup the file)
(red text for enabling LTO and blue text for optionally enabling logging for the first fix)
<hal
acPortName="/dev/ttyS0"
lBaudRate="115200"
cLogEnabled="true"
acLogDirectory="/data/location/com.broadcom.gps/logs/"
ltoFileName="/data/gps/lto2.dat"
acNvStoDir="/data/location/"
acCmdPipeName="/data/location/gpscmd"
bAllowIgnoreOsc="false"
bUseHalLogger="true"
/>
To get the LTO file, we could either:
(Method 1 using GPS Aids)
1. Create the folder /data/gps which GPS Aids puts the LTO file, and grant rmxrmxr-x permission
2. Install GPS Aids with both Data and GPS ENABLED, otherwise the Download LTO functions will be blocked and need re-configuration
3. Download the LTO file. GPS Aids shows how long since it has been downloaded
(Method 2 manually download)
1. Get lto.dat or lto2.dat from either : (7 days)
http://gllto.glpals.com/7day/latest/lto.dat
or (7 days)
http://gllto.glpals.com/7day/v2/latest/lto2.dat
or (30 days)
http://gllto.glpals.com/30day/v2/latest/lto2.dat
2. Rename and move the file which fits the setting of the modified ltoFileName parameter of gpsconfig.xml, granting sufficient permission for the folder like that in Method 1
(Method 3 auto download)
In the early time I developed a script to download the LTO file while mobile data switched on, and added service and trigger routines from the relevant system properties. Seeking advice by CM7 developer @maniac103, those triggering are not fully functional thus not recommended. Instead, pls try his latest build since June (here) with a marvelous settings UI for this case. Thanks Maniac for his kind concern and efforts on it.
Within the validity of the LTO file, the fix should be done in seconds even in limited open sky. We can download an updated LTO file anytime to keep the performance.
Reference:
http://www.htcmania.com/archive/index.php/t-151202.html
(sorry I cannot understand the language but thinking some param. may help)
http://forum.xda-developers.com/showthread.php?t=789383&page=4
(refer jupiter.xml from a model of SGS)
https://github.com/CyanogenMod/android_device_samsung_vibrantmtd/pull/3
(bash script for auto dowload)
https://github.com/jad3675/android_...283f4a26989dc07d45da8a8af580f51492d45f#L0R373
(init service for auto dowload)
Thanks folks for optimizing Defy for releasing its real performance!
I had tried all that before but had come to a conclusion that lto.dat never used or downloaded. The cellid are stored in learn_store.bin which is stored in /data/location
emphersis is downloaded and stored in gpsdata.nvs.It is used by motorola defy for a specified duration (seems 1 hour as per location.cfg - MIN_NAV_REQ_INTERVAL = 3600000 )which is updated in location.cfg if there is no gprs available.
I see... I also bear no hope originally just I think Defy uses BCM4750 and Broadcom promoted LTO years ago, and I found the params. like acLtoDir and lbsSyncLto from the htcmania.com thread last week, with referring other similar XML, and continue the trial-and-error. Hope this finding makes us feel our experiments worthy
manfifer said:
(Method 2 manually download)
1. Get lto.dat or lto2.dat from either :
http://gllto.glpals.com/7day/latest/lto.dat
or
http://gllto.glpals.com/7day/v2/latest/lto2.dat
2. Allocate the file which fits the setting of acLtoDir and ltoFileName parameter of gpsconfig.xml, granting sufficient permission for the folder like that in Method 1
Click to expand...
Click to collapse
What is the difference of lto.dat and lto2.dat? This files differ in size 65/39 kB.
popcorn1122 said:
I had tried all that before but had come to a conclusion that lto.dat is downloaded by the gpscmd file and converted into learn_store.bin which is stored in /data/location
learn_store.bin file is used by motorola defy for a specified duration which is updated in location.cfg if there is no gprs available.
Click to expand...
Click to collapse
I am confused. What I found is, that (without data connection on a CM7 ROM) learn_store.bin is updated, whenever GPS got a fix.
My assumption is, that this contains data that can help to get a quicker fix next time.
But I assume, that this contains only infos about the sats that has been involved in the last fix (which are only a few). Where else the Defy should now about the other satellites?
A downloaded lto.dat on the other hand probably contains information about all the satellites.
What do you think about my speculations?
PS: I found an interesting document:
The LTO data should be around 30kB and valid for around 4 days.
http://www.broadcom.com/collateral/tb/LTO-TB100-R.pdf
An indeed, the BCM whould support the LTO
http://www.google.de/url?sa=t&rct=j...sg=AFQjCNErL9qjljAhfOKhtIYORo_sn3BzDQ&cad=rja
You could use the LTO file from either URL, just rename it to be the same as the parameter "LtoFileName" and place it in any folder set by another parameter "acLtoDir". Both of them serve the purpose just the V2 version is smaller in size, similar to the one downloaded in GPS Aids. The app. downloads it as lto2.dat in /data/gps/, so I have to build this folder and set the above two parameters in gpsconfig.xml shown in the thread before installing the app.
Sorry I have no idea how LEARN_STORE.bin and gpsdata.nvs is created (thanks popcorn1122), just they would be expired and as you've raised in popcorn1122's thread, after 6 hrs or shorter time from a SUPL fix, apart from the birds with expired ephemeris (but coarse almanac data), there have other new birds visible without AGPS data in the last fix. When we are offline, the chip tends to fix them from scratch again gradually.
Like the Broadcom Technical Brief promoted, offline AGPS is useful while we are standing under dense skyscrapers without network assistance. It also expires after around 4 days, but its sufficient for me to update another LTO file. I keep turning off any data before testing LTO with GPS Status, and delete /data/location if I need restarting the phone. This is stubborn from normal application while I can easily get SUPL fix with my 3G data plan. But I'm eager to find the solution when one day I'd like to get a quick fix while travelling abroad. (time is valuable in the tour )
LTO files contain days of ephemeris data of all the birds, once the position is fixed, even some birds with weaker signals, whatever visible or obstructed, can aid the fixing. But it could not be applied properly in the stock or CM7 gpsconfig.xml settings.
I believe the Broadcom chips in this generation has this technology in their released chips as it has been applied since the era of WM phones. The key is just the implementation of the driver or configuration.
I did what you suggested in your first post, changed/added the red lines.
used "lto.dat" as filename and "/sdcard/download/" as dir.
I added a shortcut to the lto.dat (the bigger one) to my browser, so that is becomes easy to download (it will located that in the dir mentioned above.
But here I get some trouble with permissions. For a unknown reason, the permission is (after download) --xrwx--x .
Even with a terminal an su I can't change the permission to rw-rw-r--. Very strange, but OT here. ls -l show system / sdcard_r as owner.
(Edit: its because of the filesystem FAT: Can you test, whether it works from that folder despite the permissions as well?)
So I copied the file to /tmp and changed the permissions. You are mentioned
"rmxrmxr-x permission". Imho it is sufficient to be readable, at least x is not neccessary, as this is just data, right?
Reboot the phone with all data (WIFI/GPRS/EDGE/3G) DISABLED (for better testing, delete /data/location folder to clear all the GPS cache). Once again it needs some time for TTFF. Then we should notice the birds connected increased dramatically like fixing with SUPL. No need endless waiting of unassisted GPS for 3-4 days until next reboot. Of course we can download an updated LTO file anytime to keep the performance.
Click to expand...
Click to collapse
To clear the AGPS data it should be sufficient to use GPS Status. It can download and clear AGPS data.
Regarding deleting the files in /data/location:
-The gpscmd is an empty file (pipe?) so no need to delete.
-gpsdata.nvs and LEARN_STORE.BIN is recreated with a new call of GPSStatus
But the location.cfg is containing some settings and is not recreated. This is lost now. It will be created some location_tmp.cfg, but it is empty.
Regarding SUPL: Is this a service which runs with or without an DATA connection to the service provider? What I mean, do I have to enable data connection for this? Some data (like which cell, what time,..) are received without a data connection ...
I have come to a conclusion that lto.dat is not used by BCM4750 driver of defy.
Just check my post with updated information.
The driver brcm_guci_drv is the most important file which contains all details what the defy does and only takes port & speed & chip type & chip speed details from gpsconfig.xml at the startup.
The same case with location.cfg... half of the file is not used by defy. Only parts of SUPL in location.cfg are used by defy.
I tried every fix to improve offline GPS performance, but with no "visible" effect so far. But as some poeple like manfifer or popcorn told about improvements I did some test with initial state again - just to be able to make a real comparison.
The results are mixed. I did a initial download of a agps and get a fix in
Then I switched of gps and network. Every hour i enabled gps and checked with gpsstatus th ttff. It varies: 7, 100, 15, 10, 84, 74, 8, 62, 77s.
Than after 1.5h (i missed the 1h ): 758s
Again in 1h rythm: 60, 37, after midnight 445s(!!!).
At night I slept an started after 6.5h again more or less in 2h time distance:
26, 54, 221, 189, 859(!!!!) after 3.5h, 9s (after 1h:20min) ...
It is clear, that delay between GPS tests affects the ttff. But
@popcorn1122:
do we have a chance to get a driver that is compatible and handles lto data?
defy isn't the only phone with this broadcom chip, and froyo-kernel has been used in many devices.
how do you know about the driver brcm_guci_drv. I though this gps.jordan.so is responsible.
starbright_ said:
@popcorn1122:
do we have a chance to get a driver that is compatible and handles lto data?
defy isn't the only phone with this broadcom chip, and froyo-kernel has been used in many devices.
how do you know about the driver brcm_guci_drv. I though this gps.jordan.so is responsible.
Click to expand...
Click to collapse
Motorola Defy uses Broadcom GLCT ver. 2.1.3 79917, 2010/Jul/27, 09:21:25 driver. This is an old driver. Perhaps Motorola never bothered to update the driver to take real potential of the BCM4750 chip. The LTO.dat is not downloaded nor used. Also the settings of SUPL are left with basics and the fallback supl to google is disabled by default. The whole gps is dependent on MSA & MBS & SUPL. The fixes are possible without gprs or wifi or network towers. Hence the ephemeris data is straight downloaded from satellites. The GPS fixes & ephemeris data are stored in LEARN_STORE.BIN.
It is difficult to get the new driver for defy. LG , Iphone & Samsung have used BCM4750, but they have their own custom driver to meet their requirement. I have tried the LG driver called glgps , but the gps did not initialised even with the original defy config file.
gps.jordan.so file is not used by defy. The stock installation has no such file. Similar file was in Milestone and defy+. But not in defy. Hence brcm_guci_drv is the driver file and is the same MD5 as of defy+. Milestone brcm_guci_drv has a different MD5.
starbright, its great to make use of our browser downloading the LTO file instead of installing GPS Aids. Just for my CM7 browser, it won't overwrite the old file but rename the new one as "lto2-1", and I donno why it changes the extension to .txt , resulting lto2-1.txt. Anyway I tested changing the acLtoDir and LtoFileName param. to "/sdcard/download/" and "lto2.txt", the LTO is also effective after reboot and first lock. The permission of the downloaded file is --xrwxr-x, the same as the one in /data/gps from the app. I try bookmarking the whole URL but it won't download but view it, so I can only bookmark the path and download manually. Whether the LTO works is obvious. When 4-5 hrs after a SUPL locking, u need more than 1 min to lock, then the LTO is most probably failed. Normally its just several seconds, even no data for 3 days.
popcorn, I'm now using the 120304 build of CM7, attached my brcm_guci_drv, could u confirm if it has been replaced from the stock one. I tested both gps.jordan.so from CM7 and your thread, both work with SUPL and LTO, but after removing it and reboot, my GPS Status cannot view any birds and no more blinking GPS icon when enabled. If it dosen't exist in stock ROM, there should have some other libraries replaced by CM7, including brcm_guci_drv probably.
I attach the brcm_guci_drv from CM7 and the modified gpsconfig.xml early this thread.
I use Opera Mini and set the download-path as tile in start-page. Just open it an lto.dat will downoaded to the path. It keeps the *dat-extension, but make lto-2.dat, lto-3.dat ... if the old file isn't cleared.
manfifer said:
... the LTO is also effective after reboot and first lock. The permission of the downloaded file is --xrwxr-x, the same as the one in /data/gps from the app. I try bookmarking the whole URL but it won't download but view it, so I can only bookmark the path and download manually. Whether the LTO works is obvious. When 4-5 hrs after a SUPL locking, u need more than 1 min to lock, then the LTO is most probably failed. Normally its just several seconds, even no data for 3 days.
Click to expand...
Click to collapse
Sorry, have difficulties to understand this. You mean, LTO is working? No problems with the location and permission on /sdcard ? What is a SUPL lock? Does this data need a data connection or is it transferred (like clock or name of cell you are logged in without a data connection) just by login to a GSM network. (data connection active or not) Can you explain under wich circumstances the TTFF is so fast?
I couldn't see this helping effect, maybe have to test this again and compare your files.
I used lto.dat and CM 7.2.rc.
Sorry I should use "fix" instead of "lock", just mean "successful positioned"
Yes data (EDGE/GPRS/3G/WIFI) is needed to communicate with the SUPL servers
(supl.google.com, supl.nokia.com, etc.) to get a fast fix, just logon to GSM network does not work. So the use of LTO is to get rid of such network barrier, for several days.
In my testing whatever the file is in the phone (/data/gps/) or SD Card
(/sdcard/download/), it does works under --xrwxr-x , just I have to modify acLtoDir and LtoFileName param.
My TTFF (after restarting the phone) is around 30sec-2min., not fast as I keep data connection OFF for testing. The power of LTO comes with the 2nd fix and so on, whatever in open space or under dense buildings, whatever how long u restart GPS from the previous fix (good to test after we wake up as all fixes and cache should hv been expired.), usually the fix costs less than 5sec. The effect keeps until I restart the phone again (change SIM card, the phone hangs up ) or the LTO file is used more than 4 days around. But, if u move the file away, after say 3 hrs, the fix will take longer gradually, until costing more than a minute. So far, no data is allowed when GPS on.
I am just wondering why smartphones have to use A-GPS for fast fix? I own standalone gps device and hell there is a fix within 30-40sec or less without need of any data connection as on smartphones.
manfifer said:
For my findings, some parameters in the <hal> paragraph of /system/etc/gpsconfig.xml could also be added to enable the offline LTO-AGPS (Need rooting, and pls backup the file)
<hal
acPortName="/dev/ttyS0"
lBaudRate="115200"
cLogEnabled="false"
acLogDirectory="/data/location/com.broadcom.gps/logs/"
acLtoDir="/data/gps/"
ltoFileName="lto2.dat"
acNvStoDir="/data/location/"
acCmdPipeName="/data/location/gpscmd"
bAllowIgnoreOsc="false"
bUseHalLogger="false"
LbsEnable="false"
LbsLocal="true"
LbsSyncLto="true"
LbsSyncCells="true"
/>
Click to expand...
Click to collapse
My general impression is, it really helps.
Before clearing the AGPS data, TTFF takes just a few seconds, althought the last fix has been done >12h before.
But there is one thing, that let me doubt a bit. At least my understanding of lto (that is independend from AGPS) and AGPS seems to be not correct
My observation is the following:
- I start GPSStatus (without GPS and Data connection) and clear AGPS data.
- Close GPS status and wait a minute
- Enable GPSStatus and wait for TTFF - then it takes (lto.dat is around 1 day old) again very very long > 5min .
Do you know when the lto.dat will become active?
To summarize this (this is just what I currently assume):
a) With WLAN on and AGPS the fix is rather fast
b) after disabling WLAN, the once downloaded AGPS data seems to be helpful only for a very short time 1h...6h.
c) with lto-data it seems that the TTFF is fast again, although AGPS data is older than 12h
d) with cleared AGPS data, but with lto it need very long time (700s) for TTFF.
Can you do this test too?
Certainly... thanks for helping me to test this case so far.
I started the test without AGPS for 5 days. I started GPSStatus and cleared AGPS data (I hv to turn GPS ON else it'll be disabled) and turned them off for some minutes. When I start over again, it takes around a minute to have a fix, similar to the 1st fix after restarting the phone. The next fix is done in seconds in the next morning without data i.e. LTO works again.
Before this test, I tried modifying the xml to have the chip generate a log in each first fix after restart (blue words in my 1st post), but it doesn't carry on logging until the next restart. It states "Skip reading lto", imho it just indicates LTO doesn't help in the 1st fix.
Some findings I made...
the /system/bin/location file is responsible to generate LEARN_STORE.BIN
the /system/usr/bin/brcm_guci_drv is the gps driver which gets few parameters mentioned in gpsconfig.xml when the defy starts. Majority of parameters are already mentioned in the driver itself.
the /system/lib/libgps.so file is the run time file which has majority of parameters of location.cfg
location.cfg file has supl server location getting injected to gps for LBS functions. That file also has a fall back sulp server which by default is disabled. The last GPS time of a valid fix is stored in /data/location/location.cfg file
The question still remains unanswered:
Is lto.dat getting downloaded automatically?
Also I tried to get some files from motorola xoom (honeycomb), the driver(dec 2010) and other files mentioned above... but the radio and gps do not initialize with those new versions.
manfifer said:
I started GPSStatus and cleared AGPS data (I hv to turn GPS ON else it'll be disabled) and turned them off for some minutes. When I start over again, it takes around a minute to have a fix, similar to the 1st fix after restarting the phone. The next fix is done in seconds in the next morning without data i.e. LTO works again.
Click to expand...
Click to collapse
You can set GPS Status to be work even with GPS disabled (it just shows a warning than). And so it is possible to clear AGPS data, without enabling GPS.
After that I have problems to get a fix. (Have to test it again, currently heavy rain might influence the test)
This is a bit strange to me. From what I have heard, the AGPS data are injected into the chip. But how can they cleared if the chip is not powered?
It might have some low power standby, but who knows?
manfifer said:
Before this test, I tried modifying the xml to have the chip generate a log in each first fix after restart (blue words in my 1st post), but it doesn't carry on logging until the next restart. It states "Skip reading lto", imho it just indicates LTO doesn't help in the 1st fix.
Click to expand...
Click to collapse
Where does it write a log?
Good information.
Hope the defy can get fast GPS fixed.
starbright_ said:
Where does it write a log?
Click to expand...
Click to collapse
when you edit gpsconfig.xml with following lines, your logs are activated:
cLogEnabled="true"
bPrintToConsole="true"
acLogDirectory="/data/location/logs/"
bUseHalLogger="true"​
I am using this solution now for more than 2 weeks. Never need more than 120s (mostly less than a minute) to get position (without active data connection).
Just once I takes very long - that was the time, as lto.dat was more than 1 week old. Great job!!!!
The download of lto.dat could be optimised. With my fav in browser I need still a view actions:
- open filemanager
- delete old lto (to prevent to get an lto-1.dat, lto-2 dat ...)
- close filemanger
- open browser
- download by push a favorite on startscreen.
Best would be just one button/script, best running automatically every 5 days when WLAN/GPS connection is established.

Categories

Resources