Android nube de confusión GPS!
Pregunta
Estoy tratando de diseñar mi primera aplicación Android con el uso de GPS. A partir de ahora, tengo un botón estirable que cuando se hace clic, un mensaje avisa de la tostada de la longitud y la latitud. He tratado de utilizar el telnet localhost 5554 y geo solución # número # número para alimentar en valores, pero sin resultados pantalla justo 0
0
. También he tratado de manera DDMS de enviar las coordenadas GPS y me da lo mismo.
Mi pregunta es ¿qué es exactamente la forma correcta de uso de la corrección de geo y la forma de enviar DDMS coordenadas. He utilizado Location
, LocationManger
y LocationListener
pero no estoy seguro de cuál es la mejor opción.
Código se da, por si acaso, si existe el error con el 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();
}
}
Solución
Dos cosas
1) Hacer una latitud y longitud volátil
2) Si es asi registrese como oyente al administrador de ubicación GPS
location.requestLocationUpdates (LocationManager.GPS, 100, 1, LocationListener);
Eso ayudaría a que las devoluciones de llamada enviado a su objeto LocationListener.
Se puede extraer algo de código GPS para Android muestra aquí: http://www.devx.com/wireless/Article/43005
(¡ADVERTENCIA! DevX ha añadido un aterrizaje de registro desde que he añadido este enlace!)
Otros consejos
comentar la línea Ubicación loc = location.getLastKnownLocation (location.GPS_PROVIDER);
Y probar la aplicación mediante la actualización de GPS manualmente en DDMS
si funciona, vuelve a poner el código a continuación, Ubicación loc = location.getLastKnownLocation ( "GPS");