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...
Related
I have android app in which i am getting distance travelled speed and time some time the app works fine but sometime the app does not give accurate result i am using fused API in locationService class. any suggestions are welcomed.
Thanks
I'm assuming you're using a real android phone on your test and your code is 100% correct maybe the problem might be with the device itself. Have you turned gps high accuracy on? Have you tested your application with another phone?
This is a strange issue which mostly appears on Samsung devices but I cannot confirm its only on Samsung.
My app won't get or update to the correct location fix. It listens to GPS, network and cell providers but the location fix I get is still outdated and inaccurate sometimes the fix is like a day earlier.
I thought it might be a bug in my code but then I opened other apps (Yelp, etc...) and they also have the same problem.
I then open Google Maps and the location is perfectly accurate and up-to-date.
Is this an Android platform bug? Do Maps use a different internal location source provider? Has anyone dealt with this issue before and can provide a solution?
I ran into the same issue.
It is an Android platform bug and it seems that this is an open issue that Google knows about:
https://code.google.com/p/android/issues/detail?id=57707
It is randomly happening.
Google maps is working because their location is based on Google services (Fused Location) which you can also use.
But they also have a bug with the january 2014 update: if you are outside and request a fastest location update rate (e.g. every second) and you are connected to the both network and gps receiver, you will receive a new location only at around 10 seconds even if gps is connected.
They ruined my app which used to work fine with this update and still not fixed to this day!
So what you can do is wait for the fix or use google location service fused location if it fits for you!
Go to settings>wifi>advanced and turn off ALWAYS ALLOW SCANNING
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.
I'm facing a really annoying problem. In some point of the program, I
need to track the user position. For that I register a listener for
all the providers available and request updates. This was working
really good until I updated my phone to Android 4.0. But the same code
is working perfectly in older versions.
Now, the listener is not being called. But only under some conditions:
if i have gps coordinates, this works perfectly ok, even if the gps
coordinates are lost, I get also network
but if there is no gps coordinates and there is no wifi signal (but
the wifi on the phone is enable), I should be able to get the
coordinates using the 3g. Here is were it's not working. If I debug, I
can see how the listener is being registered but it is never called.
Please, help!!!!
Don't know whether you have gone through this.
If not, it would be useful for you.
Do you have a sim card in the device? I found this resolved the issue for me.
Incidentally, I found that after I upgraded my Galaxy Nexus to Android 4.x (specifically, 4.2.2) weird things started happening with my device. Perhaps this there are some bugs in the updates?
I am testing an Android GPS tracking application in the Emulator and I am running into a problem when trying to figure out if the last known location is stale or not. Getting the system time gives me the correct time, but when I call location.getTime() for the last known location the time returned is off by a few hours. I did some more testing and found out that every time I send a GPS location from the Emulator control tab in Eclipse (similar to geo fix), the location's time is advanced by one second. This makes no sense at all! I would appreciate any insights into this problem.
As discussed this appears to be a bug in the emulator (I was able to repeat it as well). I filed a bug report at https://code.google.com/p/android/issues/detail?id=27272 if anyone wants to add details, star it, and/or follow along.
This bug has been fixed in the ToT dev branch for API 26. We will cherry-pick this fix to other branches and hopefully the public available system images will see the bug fix in the near future.
If any issue persists, please report at Google issue tracker they will re-open to examine.