My company is involved in the manufacturing of an app that records NFC scans. Several pieces of data are associated with the scans, one of which is the GPS coordinates in which the NFC tag was scanned.

Lately we have been testing our app (we have been using a Tagital tablet with Android version 4.4.2 and an LG G2 with Android version 5.0.2) and we have been getting several incorrect reads.

One very baffling example in particular involved several scans that were made a couple days ago in a period of about 2 minutes. The first several scans were listed as being in the correct location, however the last scan that was made was listed as being in a location 30 miles away. The scans were made all in the same spot, and there was only a few seconds separating the incorrect scan with the previous scan.

My question is what exactly on the device is gathering the GPS data? Is it strictly a hardware thing? Or is there software or apps involved that determine where you are at a given time, and if so is there a way to change the software that gathers the GPS data? I am aware that you can set a device to High Accuracy, Battery Saving (Wi-Fi only) or Device only (GPS only) modes in order for the phone to obtain the GPS coordinates, but my question has to do with the actual mechanism in the device that is gathering the data.

Are there any other suggestions/quick fixes that could potentially solve this issue with inaccurate GPS reads?