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.
Related
I've done some experiments on different devices and I made each of the scanner and receiver at the same time and saved RSSI get from other nearby devices but the result was strange. first, there was a Huawei p6 that could scan other devices signal but nobody could see its transmit signal. second, the RSSI was completely device-dependent although beacons setting was the same for all of them inside the application and I want these signals to approximate their distance from each other.
question is that is this library reliable for my purpose which is getting approximately distance of devices from each other? I should mention that these results have gotten from android devices and I think that iPhones are another problem
The fragmentation in Android devices means that there is a huge variation in not just bluetooth chips, but in the external bluetooth antennas and phone cases that affect the strength of the signal Android devices receive and transmit.
While the distance estimates provided by the Android Beacon Library are useful for finding the relative distances to different beacons, using the value as an absolute distance estimate will not be consistent across different Android devices. The library does provide a way to tune its distance estimates to a specific hardware model, but unless you are targeting only a small number of devices this approach is not practical to tune for thousands of Android models out there.
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.
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.
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.