I had a strange encounter once: The location on the phone's map application and even my application was wrong by a very large delta. As in it was quite off the actual location. Is it something many have encountered or some bug with my device ? What is the approx probability of this happening (from those who have tested this bug) ?
I am using a Samsung Galaxy SII with ICS and my application fetches info from GPS_PROVIDER.
You might have an encountered a cached location if the maps application couldn't get a fix on your current location. For getting up to date locations in you app take a look at this question here
It's pretty normal for my location to be off by a large amount for a few seconds after a device turns on, until the radios can get a fix.
I have seen errors of more than 10000 km. I was looking at network fixes which come from cells and wifi only, no gps. The fix put me in England (UK) somewhere even though I was at an outlet mall in California (US). My guess is that someone had moved their wifi server from England to California and the Google WiFi database had not updated itself yet. I had a few more errors like that but not as spectacular, only 1000-5000 km reporting locations in other states of the US.
Network fixes based on cell towers will usually be 1 km off and are often 10 km off. These are based on the cell tower seen by the phone, and in hilly terrain you can often miss the closest cell tower and grab one that is on a high location a few km away.
GPS fixes also can have errors, but usually less than 1 km. These errors mostly come when some GPS signals are blocked by hills or buildings or reflected off nearby hills or buildings.
I have seen all of the above when testing Android phone positioning. Not all phones will behave identically, the quality of the GPS implementation (chip choice, rf design) can make big differences in performance.
Related
We have a ReactNative app, running on both iOS and Android.
We developed our own native module for GPS updates.
On iOS, it's working OK !
On Android, we're using FusedLocationProviderClient.
My problem: in some very rare cases on android, less than a few % of our GPS data, we see GPS data with correct latitude, but longitude keeps jumping around the real one (e.g. this seems to happen on some Samsung S9+)
See this screenshot
This bug only last a few minutes, then seems to resolve on its own...
Has anyone encoutered this bug too ?
If so, how did you fix it ?
(note: I can add code samples if you think it can help, but I'm having big difficulties reproducing this bug myself, so I doubt it's useful in this case...)
GPS takes awhile to lock, and depending on the phone, it can take quite awhile and be unreliable. The best thing you can do is check the accuracy that is reported, and also live poll the user's location when they open a relevant activity so by the time you need the location, it most likely has an accurate lock.
Also if needed, ask the user to apply their highest location accuracy settings. Details on how to do this can be found here
GPS takes some time to latch, and there should be at least 3 satellites to be able to latch for the device, if the user is indoor, it is nearly impossible to latch.
You will have to check for the accuracy, on testing I have found that if accuracy value becomes 2.9 (may be different on different devices, but till now I haven't seen) then your device location is set.
Or give some time to devise and record coordinates when you think it's feasible depending upon accuracy.
Hope this may help you...
I am looking for device's location, I used the code provided by google (https://github.com/googlesamples/android-play-location/tree/master/BasicLocationSample) but it seems working differently if in different devices. The two devices are Samsung Galaxy Ace Plus 7500 (S7500) and HUAWEI Y530-U00, I used GPS and 3G, the result was a very big location difference (about 300 or 400 meters). I used FINE location to perform my location but it seems the same.
Another problem is about S7500 which seems to update his location only if an app require internet, so I have to open an app and after check again location.
I would know if 2 people are near but with an approximation of about 50 meters, how could I get it?
Thanks in advance!
I have a GPS logger app I have wanted to make for a few years now. My old phone could never do it (HTC Desire Bravo A8183) as the GPS update rate was only 1Hz. Friends are telling me their Samsung and iPhones can do 5Hz GPS now. I have installed the same app I used in my HTC in my Nexus 5 to measure the GPS update rate and I am still getting 1Hz as the standard update rate from the Nexus 5.
At first all I want to make is a position recorder that saves GPS coordinates to the onboard storage. For this application power use does not matter, as using a USB car charger at the same time would make sense. It also does not matter if the 'phone' functionality of the device is impaired whilst the app is running.
My idea is to make something for personal use similar to a GoPro with inbuilt GPS logging. GPS would give you location, and distance over time gives you speed, and delta speed over time knowing weight and drag co-efficient gives you horsepower. I already know the Cd and CdA and running weight for my race car.
Anyway how do I get the phone to poll the GPS more often? Do I need to root kit the phone and then install some obscure hack? Or is it not possible?
I need accurate data in the 4-10Hz range or I may as well just forget about making this. I'm pretty sure I can buy a bluetooth GPS 'mouse' that does this but it would be much more practical to use the phones internal hardware.
We are testing out Android application on real world devices and notice some of them report very unaccurate data (even under clear sky and over 10 sats seen and 5 sats used), and even reporting speed over 10km/h when the device is not actually moving, and at the same time some devices retun 0 when location.getAccuracy is called.
We have managed to parse NMEA data, and NMEA reports "1" which means that the data is reliable.
This sometimes happens to different makes and models based on different hardware and different Android version. The most unreliable are S-E Xperia x8 (sometimes we get fixes at 20-30kms from real location) and Alcatel 918D (it is always moving over 5km/h and accuracy==0)
Turning A-GPS helper off and on as well as clearing/re-requesting A-GPS updates does not help.
Is there any way to filter such unaccurate fixes "by hand" (with some other NMEA stanzas, etc.) becuase some other software report the location much better on the same devices?
P.S. On most devices we get fine results, as expected.
P.P.S. The most accurate is my own Garmin-Asus. Hope they join again someday.
Assuming clear view of satellites, what accuracy in meters can I expect from GPS on Android Devices?
Is it different for network vs gps location providers?
In theory you can get within 5 meters if you have a good fix from GPS however that will likely vary from device to device.
It will most definitely vary based on whether you're using the GPS or the network. Network triangulation can only provide accuracy to within several hundred, sometimes thousand meters -- it's rough at best. Regular GPS can theoretically provide a location to within 5 meters, and 1 meter with data augmentation (WAAS or DGPS for example).
The "open sky" accuracy is not only different from one Android phone model to another; even different handsets of the same model with the same Android version and software can have different GPS performance. At work I have access to two Samsung Galaxy S phones, one of which gets a GPS fix significantly faster and in significantly worse signal conditions than the other. This could be due to manufacturing differences in the GPS chip, or antenna connection, or assembly process. Whether the phone is moving or stationary also influences the accuracy, and big errors in the first fix can take minutes to disappear as the GPS position converges to the correct solution.