Pergunta

Estou tentando projetar meu primeiro aplicativo Android com o uso do GPS. No momento, tenho um botão desenhado que, quando clicado, alerta uma mensagem de brinde da longitude e latitude. Eu tentei usar o Telnet localhost 5554 e depois Geo Fix #Number #Number Para alimentar valores, mas nenhum resultado exibe apenas 0 0. Eu também tentei a maneira DDMS de enviar coordenadas de GPS e recebo a mesma coisa.

Minha pergunta é qual é exatamente a maneira correta de usar a correção GEO e a maneira DDMS de enviar coordenadas. Eu tenho usado Location, LocationManger e LocationListener Mas não tenho certeza de qual é a escolha certa.

O código é fornecido, apenas se o erro existir com o código

@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();          
   }     
}
Foi útil?

Solução

Duas coisas

1) Torne a latitude e longitude voláteis

2) Tente se registrar como ouvinte no GPS Location Manager

location.RequestLocationUpDates (LocationManager.Gps, 100, 1, LocationListener);

Isso deve receber os retornos de chamada enviados ao seu objeto LocationListener.

Você pode conferir um exemplo de código GPS Android aqui:http://www.devx.com/wireless/article/43005

(Aviso! Devx adicionou um pouso de registro desde que adicionei este link!)

Outras dicas

comente o local da linha loc = location.getLastknownLocation (location.gps_provider);

E teste o aplicativo atualizando GPS manualmente no DDMS

Se funcionar, volte ao código e coloque localização loc = location.getLastknownLocation ("GPS");

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top