2011-02-25 3 views
1

i m работает над одним приложением, которое должно найти длину и длину местоположения пользователя, а затем отобразить на карте. Но когда интернет на устройстве работает нормально. но когда я пытаюсь отключить Интернет, он получает lat и long null.Android широта и долгота

запросы:

  1. если я хочу найти широты и долго programmaticly связность интернета должна быть там?
  2. Без подключения к Интернету я могу найти lat и long programmaticaly?

ответ

0

Вы можете определить местоположение устройства программно путем реализации LocationListener и что-то вроде этого:

LocationManager locmgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
locmgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); //"this" implements LocationListener 

@Override 
public void onLocationChanged(Location location) { 
    //do whatever with "location" 
} 

Нет необходимости подключения к интернету вообще, вы просто не нужен поставщик местоположения (A-GPS, GPS)

3

Дело в том, что Android может определить вашу долготу/широту.

  • Если GPS включен, он использует GPS
  • Если нет, то он использует сеть (или Wi-Fi), чтобы определить, что, основываясь на клетке, где вы находитесь, или адрес IP.

Таким образом, если GPS дезактивирован (или не может поймать сигнал из-за того, что он находится в помещении или в плохих метеорологических условиях), а также в сети, Android не может вычислить ваши координаты.

+0

Следует добавить, что GPS может быть активирован, но нет никакого сигнала от спутников (например, небо облачно). –

+0

добавил эту часть, спасибо :) –

0

Если вы хотите отобразить его на карте, используйте MyLocationOverlay. Его путь проще, чем реализация ваших собственных локальных пользователей. Вызов enableMyLocation onResume() и disableMyLocation onPause().

Вы можете также подкласс MyLocationOverlay изменить значок, делать пользовательские вещи на изменения местоположения и т.д.

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