2010-04-23 11 views
3

Я пытаюсь получить мое местоположение, используя его как это:получить текущее местоположение (GPS/WiFi)

LocationManager myLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_FINE); 
criteria.setAltitudeRequired(false); 
criteria.setBearingRequired(false); 
criteria.setCostAllowed(true); 
criteria.setPowerRequirement(Criteria.POWER_LOW); 

String provider = myLocationManager.getBestProvider(criteria,true); 

if (provider != null) { 
    //there is a provider 
    myLocationManager.requestLocationUpdates(provider, 10L, 500.0f, (LocationListener) mainContext); 
    Location myCurLocation = myLocationManager.getLastKnownLocation(provider); 
      //here i'm trying to get some data from the 
      //myCurLocation but 
      //myCurLocation == NULL 
} 

но myCurLocation всегда == NULL

Что я делаю неправильно?

ответ

8

Вызов getLastKnownLocation() не блокирует - а это значит, он будет возвращать null, если нет позиции в настоящее время доступна - так что вы, вероятно, хотите взглянуть на пропускании LocationListener к requestLocationUpdates() method вместо, который даст вам асинхронные обновления ваше местоположение.

Посмотрите на this question for an example of using a LocationListener.

+0

→ → → @ Dave Webb → → → это было быстро .. Большое спасибо! – gilmad