2011-05-11 2 views
1

Ceci est mon code.Obtenir la dernière localisation latitude et longitude

public class MyLocationListener implements LocationListener { 

    @Override 
    public void onLocationChanged(Location loc) { 
     Location location = getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
     LastLocationLat = location.getLatitude(); 
     LastLocationLongi = location.getLongitude(); 

     LocationLat = loc.getLatitude(); 
     LocationLongi = loc.getLongitude(); 

     if(loc.hasSpeed()) { 
      float mySpeed = loc.getSpeed(); 
      Toast.makeText(getApplicationContext(), ""+mySpeed, 2000).show(); 
     } 
    } 

    @Override 
    public void onProviderDisabled(String provider) { 
     Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onProviderEnabled(String provider) { 
     Toast.makeText(getApplicationContext(), "Gps Enabled", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
     Toast.makeText(getApplicationContext(), "Gps onStatusChanged", Toast.LENGTH_SHORT).show(); 
    } 
} 

Mais je n'ai pas la dernière position dans ce code, je suis même latitude et la longitude

Répondre

2

Vous utilisez LocationManager.NETWORK_PROVIDER pour obtenir des emplacements. Votre code implique que vous voulez GPS ("Gps Disabled")? Dans ce cas, vous devez utiliser LocationManager.GPS_PROVIDER. LocationManager.NETWORK_PROVIDER n'est pas très précis (quelques centaines de mètres si vous vous verrouillez sur des tours de téléphonie cellulaire), vous risquez donc de ne pas détecter le changement d'emplacement si vous vous déplacez moins de 100 m. D'autre part, le GPS n'est généralement pas disponible à l'intérieur ou entre les bâtiments de grande hauteur. De plus, le GPS utilise le pouvoir, il ne devrait donc pas être utilisé tout le temps (lorsque l'application est en arrière-plan).

Lisez à propos de Obtaining User Location, pour la meilleure approche pour obtenir l'emplacement en ce qui concerne la précision par rapport à la disponibilité du service.

Questions connexes