2014-12-29 3 views
1

Я разрабатываю приложение с первой проверкой активности для сети и Gps, и если присутствует хотя бы сеть, она пытается получить текущее местоположение (особой точности не требуется). В режиме WIFI все работает отлично. В режиме GPS (если доступно) все идеально подходит. Проблема с мобильным Интернетом (без WIFI/GPS). В этом режиме метод onLocationChanged дает мне некоторые координаты сразу после запуска запросов на размещение. Точность очень плохая. Дело в том, что я не могу найти разницу между WIFI и мобильным Интернетом.Android: Получение местоположения с помощью мобильного интернета (NETWORK_PROVIDER)

..следующего код

private void startLocationListeners(){ 
    try 
    { 
     if (isNetworkEnabled) 
     { 
      if (isGPSEnabled) 
      { 
       locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0, locationListener); 
       Log.d("TAG", "GPS"); 
       } 

      else{ 
       locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0, locationListener); 
       Log.d("TAG", "Network"); 
       } 
      } 
     } 

    catch (Exception e) 
     { 
     Log.e("Error TAG : LocationManager", "problem", e); 
     } 
} 

ое здесь onLocationchanged

public void onLocationChanged(Location location) { 
      stopLocationListeners(); 
      coordinates=String.valueOf(location.getLatitude())+","+String.valueOf(location.getLongitude()); 
      Toast.makeText(context, coordinates, Toast.LENGTH_SHORT).show(); 
      startCamera(); 
      } 
    }; 

каких-либо предложения?

ответ

0

Вы действительно отключите Wi-Fi, чтобы выполнить свой тест? Если это так, это точно ожидаемое поведение.

Поиск работы в сети, отправив запрос в Интернет, в котором говорится: «Я вижу следующие сети Wi-Fi и сотовые башни, можете ли вы сказать мне, где я?» Когда Wi-Fi включен, у вас много сетей, и поскольку Wi-Fi является сигналом короткого диапазона, вы можете получить довольно хорошее представление о местоположении. Если вы отключите Wi-Fi, то все, что у вас есть, - это расположение ячеек, и они намного дальше друг от друга, поэтому точность падает.

+0

Я уже проверил его. Та же проблема. Возможно ли, что проблема плохого мобильного интернета стала проблемой? Кроме того, я заметил в logcat, что, когда я получаю местоположение, иногда onLocationChanged() запускается более одного раза. Я использую метод stopLocationListeners() для предотвращения этого и получения одного места, но он не работает. – Vissarionas

 Смежные вопросы

  • Нет связанных вопросов^_^