2012-05-10 4 views
1

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

Я читал ответы здесь и в Интернете, но все говорят, что я должен использовать метод getLastKnownLocation, но мне это не нужно, мне просто нужно текущее местоположение. Если нет, я ничего не делаю.

ответ

1

Прочитайте это со вчерашнего дня: GPS Android - get positioning only once

Но вот как вы можете получить текущее местоположение:

public class Example extends Activity implements LocationListener { 
    LocationManager mLocationManager; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 

     Location location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     if(location != null && location.getTime() > Calendar.getInstance().getTimeInMillis() - 2 * 60 * 1000) { 
      // Do something with the recent location fix 
      // if it is less than two minutes old, 
      // otherwise wait for the update below 
     } 
    } 

    public void onLocationChanged(Location location) { 
     if (location != null) { 
      Log.v("Location Changed", location.getLatitude() + " and " + location.getLongitude()); 
      // You need to call this whenever you are done: 
      // mLocationManager.removeUpdates(this); 
     } 
    } 

    // Required functions  
    public void onProviderDisabled(String arg0) {} 
    public void onProviderEnabled(String arg0) {} 
    public void onStatusChanged(String arg0, int arg1, Bundle arg2) {} 
} 
+0

спасибо! я попробую это. Один вопрос, как мой метод может ждать обновления местоположения, чтобы сделать что-то. например, сохранить местоположение в базе данных. Должен ли я использовать wait, уведомлять? – user1252306

+0

Я не понимаю ваш вопрос ... Вы можете делать материал для каждого нового местоположения GPS, когда он предоставляется вам в onLocationChanged(). Если вы хотите только проверить новое местоположение каждые пять минут или 500 метров, измените requestLocationUpdates(). – Sam

+0

Сэм, например, если я хочу сохранить полученное местоположение в базе данных, я должен ждать, пока GPS не получит место, вот что я имел в виду. – user1252306

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