[Android Apps and Games] jago25_98:
1) It could actually be hardware.

On my i9000 the rubber connector between the case and the board had failed. Trying to solder a spring onto it appeared to burn out the chip completely.

Try another device in the same place. Looking at my Nexus I see a spring connection to the back case for some kind of ariel. Not sure if it's for the GPS. Q: Can we connect an external GPS antenna to help test this variable? Most people have tested this by breaking the connection between the mainboard and the antenna. It's a slow process unfortunately.

i9000 hardware GPS problem:

http://xdaforums.com/showthread.php?t=1697217

Nexus S 4G CDMA (i9020a) link to same problem

Page 5 has links to internal diagrams and mention of NFC antenna getting magnetised affecting compass.

2) No GPS in the sky (or not enough of them). Go as far North as Northern Norway or Alaska and you can have troubles.

Try another device in the same area. Cloud cover will degrade the signal, so will trees. Q: Better way to test without standing out in the rain?

3) AGPS cache has crap in it.

Do a AGPS reset.

4) AGPS server connectivity. Could be a GPRS problem. Could be WiFi problem. Could be at the server. Check what server you're using to see if you can contact it from the phone. Q: Is ping a good way to check?

5) EPO server fails. Perhaps md5sum is broken:

http://xdaforums.com/showthread.php?t=1975500

YGPS and the engineering menu on mtk65** phones is very useful. EPO downloads a map of where satelites are expected to be so the GPS then know exactly what to expect. The list is updated once per day. Q: I'm only aware of this on Mediatek phones?

6) GPS works better when moving.

If you have

### ROOTED SAMSUNG GT-I9100/GT-I9100T/GT-I9100G/SGH-I777 or GALAXY NEXUS DEVICE REQUIRED ###

Try: GPS Control SiRF

^ We need a better version of this app to work with more phones.

7) Some radios are better than others. This is where it gets difficult. Is there a single phone out there with open source GPS drivers? (not geeksphone afaik). The GPS code AFAIK is in the modem image, totally closed. Perhaps there's a way to generate a GPS signal to test with?

- If the worse comes to the worst you can always buy a Bluetooth GPS module to lug around and use that. I didn't have success with Cyanogenmod's built in external GPS in the settings so I used "Bluetooth GPS" on one phone and "Blue GPS" on another.

- I've heard GPS doctor (aids?) is a good app but expensive so not much use for diagnosing different phones all day. This XTRA download thing I don't fully understand.

- finally, do you know of a recent small screen phone with a good & reliable GPS?

update:

I will update this post as I find info along the way.

Basically what appears to be a big source of difficulty diagnosing errors is that there is no way to isolate the ariel as a problem. The Android API doesn't include access that low level.

from:

http://stackoverflow.com/questions/4250434/how-can-i-get-the-gps-raw-data-satellites-pseudo-range

Satellites pseudo-ranges are not available in the official API, neither through the GpsStatus.Listener nor the GpsStatus.NMEAListener interfaces.

The only available info available in the GpsSatellite class are:

PRN
azimuth
elevation
C/N0
a "usedInFix" boolean.
The Android source code asks just those fields from the native code, so no hope to get it from any other Java API.

The best way for you to get this data anyway (which is not suitable for a Market-able application) would be to explore Android source code, and either find a native hook to get the data at low level and access through JNI, or recompile the full OS modifying the API to your needs (you also need to find the relevant native code for that).
Finally, if you can get the chipset to send you GRS NMEA sentences (you would get them through the standard NMEAListener interface, the difficulty is configuring the chipset to send them) you can then compute the pseudo-ranges (those sentences contain satellites' residuals)

Good luck and let me know if you try any of these ideas!

update 2:

The connector on phona mainboards (assuming you have one) is "UFL". The connector on some GPS external ariels is MMCX. The bigger connectors are SMA. If you want to connect a external GPS antenna for testing without soldering you probably need a UFL to MMCX pigtail.

Plugging in UFL connected external ariels may help with diag for the various radios.

I have only 2 satelites seen on mine. I've bent the print connector up to touch the ariel a little harder but still it's a bad connection (presumably). I am thinking of ordering:

http://www.hwkitchen.com/products/mini-gps-antenna-embedded-ufl/

just to test it and confirm.

I'm guessing a magnetized NFC ariel wouldn't cause this. Removing the back (which has the NFC Ariel is) hasn't helped anyway even though the magnetometer does respond to taking the back off.

"file create fail" is what I get in trying to run the antenna test with LBSTestMode.

This hardware fix doesn't seem to be intended for the 4G but I tried it anyway:

http://forums.androidcentral.com/sp...llly-fix-nexus-s-gps-hardware-mod-needed.html

Is there a better way to test? I'd like to see the raw data that the GPS is getting from satellites too see how it is caluculating the position but I don't think that's possible.