Я разрабатываю приложение с первой проверкой активности для сети и 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();
}
};
каких-либо предложения?
Я уже проверил его. Та же проблема. Возможно ли, что проблема плохого мобильного интернета стала проблемой? Кроме того, я заметил в logcat, что, когда я получаю местоположение, иногда onLocationChanged() запускается более одного раза. Я использую метод stopLocationListeners() для предотвращения этого и получения одного места, но он не работает. – Vissarionas