2010-09-30 7 views
1

Bonjour, j'ai une application qui demande toutes les 5 secondes pour la position GPS, mais il retourne toujours la même position. J'ai essayé la position de substitite dans DDMS ou par telnet (geo fix ... ...) Mais de toute façon il retourne la postion initiale. Qu'est-ce qui ne va pas?Android Emulator substituant la position GPS

public class App09_GPS_RepeatedAsking extends Activity { 
TextView tv1; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    tv1 = (TextView) findViewById(R.id.textview); 

    Timer timer = new Timer(); 
    timer.scheduleAtFixedRate(new TimerTask() { 
     Handler mHandler = new Handler(); 
     @Override 
     public void run() { 
      try{ 
       mHandler.post(new Runnable(){ 
        @Override 
        public void run() { 
         LocationManager lm = (LocationManager)getSystemService(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 =lm.getBestProvider(criteria, false); 
         //Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

         Location loc = lm.getLastKnownLocation(provider); 
         String Text = "My current location is: " + "Latitud = " + loc.getLatitude() + " Longitud = " + loc.getLongitude(); 
         Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show();     
         Log.v("LOG",Text); 
       } 
       ); 
      }catch(Exception e){ 
       Log.v("LOG",e.toString()); 
      } 
     } 
    }, 0, 5000);  
} 
} 

Répondre

1

Pour demander un emplacement GPS dans un même intervalle, vous devez utiliser les LocationManager.requestLocationUpdates() -method:

http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String, long, float, android.location.LocationListener)

Il y a aussi un tutoriel sur le site du développeur Android: http://developer.android.com/guide/topics/location/obtaining-user-location.html#Updates

+0

Thx pour la réponse. J'ai essayé de faire app selon le tutoriel familier (using requestLocationUpdates). Mais le problème est le même. Lorsque j'essaie de substituer la position GPS à l'émulateur, cela ne fonctionne qu'une seule fois. Im essayant de changer de position plusieurs fois, mais la position n'a pas changé. Je ne sais pas ce qui ne va pas. : / – Tom

1

On dit que changer le temps de l'émulateur en temps réel peut avoir un effet ive. Vous pouvez essayer