Реальная причина, по которой вы не получаете действительные координаты, заключается в том, что некоторые операторы сотовой связи просто не предоставляют эту информацию или они предоставляют неверную информацию.
Я провел множество личных исследований этого для одного из моих опубликованных приложений. И, чтобы попытаться помочь вам направить вас в правильном направлении: (ниже приведены обобщения из множества разных тестов, чтобы вы могли найти одно устройство, которое отличается)
- GSM-провайдеры, такие как T-Mobile, всегда возвращают недействительными.
- Sprint имеет тенденцию возвращать хорошие / действительные значения.
- Verizon предоставляет информацию о вышке, которая находится на расстоянии многих миль.
ps. На всякий случай, мое приложение LTE Discovery в Google Play. Он покажет вам все различные типы координат, которые можно получить из Android API. (Но я не ссылаюсь на это, потому что это может быть против какой-то рекламы для SO.)