2013-07-16 4 views
0

у меня есть этот код:андроида LocationManager последняя позиция

if (item.getItemId() == R.id.tempMap) { 
     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     Location location = null; 
     if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)||locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){ 
     Criteria criteria = new Criteria(); 
     criteria.setAccuracy(Criteria.ACCURACY_FINE); 
     provider = locationManager.getBestProvider(criteria, true); 
     location = locationManager.getLastKnownLocation(provider); 
     locationManager.requestLocationUpdates(provider, 20000, 1, this); 
     if (location != null) { 
      Log.e("PROVIDER SCELTO", provider); 
      onLocationChanged(location); 
      Log.e("LATITUDE", String.valueOf(latitude)); 
      Log.e("LONGITUDE", String.valueOf(longitude)); 

и:

public void onLocationChanged(Location location) { 
    // TODO Auto-generated method stub 
    latitude = location.getLatitude(); 
    longitude = location.getLongitude(); 
} 

но последние GPS указывают, что он вернется в последний момент после я использовать «Google Maps навигатор». Итак, если я не использую навигатор gm, широта и долгота не обновляются.

ПОЧЕМУ ???

Спасибо

ответ

0

места затруднительное требует время ожидания до хорошего Фикса RECIVED это проверяет время исправления и устанавливает местоположение, только если исправление в течение периода времени, если вы не проверить время еекнопки предоставит последнее исправление, полученное с учетом того, когда

public void onLocationChanged(Location location) { 
Date dd=new Date(location.getTime()); 
    Date ddd=new Date(System.currentTimeMillis()-(1000*60*15)); 
    Log.e("", String.valueOf(location.getTime()+":"+System.currentTimeMillis()+":"+dd+":"+ddd)); 
    if (dd.compareTo(ddd)==1?true:false) { 
     got=true; 
     latitude=String.valueOf(location.getLatitude()); 
     longitude=String.valueOf(location.getLongitude());} 
} 
+0

благодарим за ответ. Но если (dd.compareTo (ddd) == 1? True: false) {он возвращает false, потому что dd is Sat Jul 13 20:58:50 и теперь ddd. – Anto

+0

проверить на устройстве ll never wrk n emulator –

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