Domanda

Sto cercando di progettare la mia prima applicazione Android con l'uso del GPS. A partire da ora, ho un tasto drawable che se cliccato, avverte un messaggio Toast della longitudine e latitudine. Ho cercato di utilizzare il telnet localhost 5554 e quindi geo correzione #number #number per alimentare nei valori, ma senza risultati di visualizzazione solo 0 0. Ho anche provato DDMS modo di inviare le coordinate GPS e ottengo la stessa cosa.

La mia domanda è che cosa è esattamente il modo corretto di usare la correzione geo e il modo DDMS di invio di coordinate. Ho usato Location, LocationManger e LocationListener, ma non sono sicuro che è la scelta giusta.

Codice è dato, nel caso in cui se l'errore esiste con il codice

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button button = (Button) findViewById(R.id.track);
    button.setOnClickListener(this);
    LocationManager location =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
    Location loc = location.getLastKnownLocation(location.GPS_PROVIDER);
    updateWithNewLocation(loc);

  }

 private final LocationListener locationListener = new LocationListener() {
   public void onLocationChanged(Location location) {
     updateWithNewLocation(location);
   }

  private void updateWithNewLocation(Location l) {
  longitude = l.getLongitude();
  latitude = l.getLatitude();
  provider = l.getProvider();     
  }

    public void onClick(View v) { 
     Toast.makeText(this, "Your location is " + 
      longitude + " and " + latitude + " provided by: " + 
      provider, Toast.LENGTH_SHORT).show();          
   }     
}
È stato utile?

Soluzione

Due cose

1) Fai la latitudine e la longitudine volatili

2) Prova a registrarti come ascoltatore al GPS location manager

location.requestLocationUpdates (LocationManager.GPS, 100, 1, LocationListener);

Questo dovrebbe farti callback inviati al proprio oggetto LocationListener.

È possibile controllare un certo codice GPS Android di esempio qui: http://www.devx.com/wireless/Article/43005

(ATTENZIONE! DevX ha aggiunto un atterraggio di registrazione da quando ho aggiunto questo link!)

Altri suggerimenti

commentare la linea  Località loc = location.getLastKnownLocation (location.GPS_PROVIDER);

e testare l'applicazione aggiornando GPS manualmente DDMS

se funziona, torna al codice poi mettere Località loc = location.getLastKnownLocation ( "GPS");

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top