Posición: Newbie
Grupos: Registered
Registrado: 02/10/2013(UTC) Mensajes: 2 Ubicación: españa
|
Leyendo el tutorial de Android, he encontrado el foro. Me parece excelente, tanto el foro como el tutorial. El caso es que, experimentando con location, he bajado el ejemplo y funciona perfectamente, pero, despues, estudiando el codigo, hay alguna cosa que no termino de entender. Código:// GPS
public static String lat, lon, loc;
static Location location_A;
static Location location_B;
int nsat, msat, alt, error;
double vel;
Aqui se declara nsat y msat. Numero de satelites y numero total de satelites. Código:// escribimos Datos del GPS
String tsat = (String) (getResources().getString(R.string.sat)
+ " " + nsat + " / " + msat + "\n" + loc + "\n"
+ getResources().getString(R.string.alt) + " " + alt + " m"
+ "\n" + getResources().getString(R.string.prec) + " "
+ error + " m" + "\n"
+ getResources().getString(R.string.vel) + " " + vel + " Km/h");
nsatelites.setText(tsat);
Aqui, actualizamos el textview con, entre otras variables, nsat y msat. Pero no encuentro la parte del codigo donde actualizamos esas variables con sus valores respectivos. La cuestion es que funciona perfectamente, pero no entiendo como. Como se conocen los satelites conectados y el total de satelites disponibles?
|
|
|
|
Posición: Administration
Grupos: Administrators
Registrado: 07/10/2010(UTC) Mensajes: 436  Ubicación: España Agradecimientos: 38 veces Fue agradecido: 49 vez/veces in 48 publicación(es).
|
Hola!! Te a faltado un poco de codigo.... exactamente lo saca de aqui: se necesita un listener "especial" para el estado del GPS Código:
lisener_gpsstatus = new MyGPS_Status();
Luego mediante el objeto "GpsStatus" adquieres los datos de los satelites, se guadan en un array que hay que recorrer para extraer los datos en el while que ves mas abajo, por un lado se sacan los satelites maximos y luego los satelites que hay conectados. Código:
public class MyGPS_Status implements GpsStatus.Listener {
public void onGpsStatusChanged(int event) {
nsat = 0;
msat = 0;
GpsStatus status = lm.getGpsStatus(null);
Iterable<GpsSatellite> sats = status.getSatellites();
Iterator<GpsSatellite> it = sats.iterator();
while (it.hasNext()) {
GpsSatellite info = it.next();
// String t = info.getPrn() + "," + info.usedInFix() + "," +
// info.getSnr() + "," + info.getAzimuth() + "," +
// info.getElevation();
// Toast.makeText(getApplicationContext(),t,
// Toast.LENGTH_SHORT).show();
if (info.usedInFix()) {
nsat++;
}
// it.next();
msat++;
}
if (nsat < 3) {
vel = 0.0;
}
// Datos GPS
String tsat = (String) (getResources().getString(R.string.sat)
+ " " + nsat + " / " + msat + "\n" + loc + "\n"
+ getResources().getString(R.string.alt) + " " + alt + " m"
+ "\n" + getResources().getString(R.string.prec) + " "
+ error + " m" + "\n"
+ getResources().getString(R.string.vel) + " " + vel + " Km/h");
nsatelites.setText(tsat);
}
}
espero haberte ayudado!! Un saludo!! |
|
|
|
|
Posición: Newbie
Grupos: Registered
Registrado: 02/10/2013(UTC) Mensajes: 2 Ubicación: españa
|
Muchas gracias me ayudaste muchisimo.
|
|
|
|
Salto de foro
No puedes iniciar nuevos temas en este foro.
No puedes responder a temas en este foro.
No puedes eliminar sus temas en este foro.
No puedes editar sus temas en este foro.
No puedes crear encuestas en este foro.
No puedes votar las encuestas en este foro.