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?
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 need to check how many GPS satellites which is connecting with device.
I know how to do that on Android native app (how to get satellite name or number when we are getting location through GPS in Android?).
But, I need how to do that in phonegap/cordova hybrid application.
Thanks.
There is not anything developed to achieve that. If you want, you should make a plugin based in that android functions.
Since ios does not provide the number of satellites, and since phone gap is designed as a subset of functionality that runs on all phoneplattform, the num satellites is not available.
Further today the number of satellites is of little use, today phones use at least a combination of the US GPS and the Russion GLONASS. Thus always having many satellites in view, even in urban canyons.
You cannot use the num of satellites as a quality indicator.
Use horicontal acuracy estimate for that purpose.
Both android and ios provide that (check if phone gap provides, this, too)
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.
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'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?