Вот вам оригинальная статья по тому, как осуществляется геолокация.
https://developer.android.com/guide/topics/locatio...
Коротко, если вам нужны только точные данные, которые дает GPS-
приемник, нужно использовать, соответственно, android.hardware.location.gps, GPS_PROVIDER, ACCESS_FINE_LOCATION.