Переключение между сетями в андроиде - PullRequest
0 голосов
/ 16 мая 2011

Эй, ребята, я разрабатываю приложение, в котором мне нужно найти широту и долготу пользователя.Я могу найти широту и долготу у сетевых провайдеров с помощью следующего кода: -

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
loc = lm.getLastKnownLocation(lm.NETWORK_PROVIDER);
Toast.makeText(BaseScreen.this, "Lat: "+loc.getLatitude()+" long: "+loc.getLongitude(), Toast.LENGTH_LONG).show();

Теперь мне нужно реализовать следующие случаи: -

  • Что если пользовательв здании, и он не может извлечь данные из GPS
  • Что делать, если у пользователя отключен GPS и он хочет получить местоположение из сети
  • Мое приложение выполняет около 20 действий, если я размещаю кодLocationlistener в одном базовом экране, который расширяется другими действиями и сохраняет широту и долготу в каком-либо диспетчере данных, после чего обратный вызов будет работать в этом базовом экране действий, даже если действие не является основным действием пользовательского интерфейса ??

1 Ответ

0 голосов
/ 17 мая 2011

а. Обычно мы должны регистрироваться как для GPS, так и для сетевого провайдера при запросе обновлений, это решает проблему прямой видимости, когда мы автоматически возвращаемся к сетевым значениям.

б. Если GPS выключен, вы можете проверить это из кода с помощью isProviderEnabled (), если нет, то единственный вариант - использовать поставщика сети.

с. Еще лучше иметь LocationListener в качестве отдельного класса, а в onLocationChanged хранить полученное местоположение, которое должно быть доступно в вашем приложении.

Для регистрации используйте android.location.LocationListener.requestLocationUpdates

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...