logo
Bienvenido visitante. Para activar todas las funcionalidades, por favor Iniciar sesión o Registrarse.

Aviso

Icon
Error

Opciones
Ir a la última publicación
elteixe  
#1 Publicado : martes, 30 de diciembre de 2014 15:49:30(UTC)
elteixe

Posición: Newbie

Grupos: Registered
Registrado: 30/12/2014(UTC)
Mensajes: 8
Ubicación: talavera

Buenas,
Estoy empezando a programar mi primera aplicacion y me estoy intentando crear una que inicie la lectura de GPS ( latitud y demas ) al pulsar un boton. Hasta ahi lo veo facil, pero quiero que por ejemplo cuando salgo a correr y me pare, que automaticamente pite el movil o me aparezca un mensaje que me diga que tengo que empezar a correr de nuevo por ejemplo.
Mi idea es que cuando el GPS se pare y siga haciendo lecturas, va a detectar que las lecturas son las mismas porque estoy parado y entonces es cuando me ha de avisar. No se si estoy enfocando bien la idea....
Alguien me echa una mano?
Muchas gracias

//al pulsar el boton empieza la lectura de datos

btnActualizar.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
actualizarPosicion();
}});
}

private void actualizarPosicion()
{
//Obtenemos una referencia al LocationManager
locationManager =
(LocationManager)getSystemService(Context.LOCATION_SERVICE);

//Obtenemos la última posición conocida
Location location =
locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

//Mostramos la última posición conocida
muestraPosicion(location);

//Nos registramos para recibir actualizaciones de la posición
locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
muestraPosicion(location);
}
public void onProviderDisabled(String provider){
lblEstado.setText("Provider OFF");
}
public void onProviderEnabled(String provider){
lblEstado.setText("Provider ON");
}
public void onStatusChanged(String provider, int status, Bundle extras){
Log.i("localizacion", "status: " + status);
lblEstado.setText("Status: " + status);
}
};

locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 15000, 0, locationListener);
}


No se si me estoy complicando la vida y estoy metiendo mucho codigo o si se puede hacer mas simple.
Muchas gracias

Editado por un usuario martes, 30 de diciembre de 2014 15:50:18(UTC)  | Razón: No especificada

admin  
#2 Publicado : viernes, 2 de enero de 2015 23:23:26(UTC)
admin

Posición: Administration

Grupos: Administrators
Registrado: 07/10/2010(UTC)
Mensajes: 436
Hombre
Ubicación: España

Agradecimientos: 38 veces
Fue agradecido: 49 vez/veces in 48 publicación(es).
Hola!

yo hice un app parecida, hecja un vistazo!

https://play.google.com/store/apps/details?id=es.epinana.sosSport&hl=es

yo lo hice con un "relog" que cuenta un tiempo y comprueba que te estas moviendo, sumando las distancias del gps cada vez que te mueves, si cuando pasa el tiempo establecido no te as movido los metros que programas salta una alarma.

Un saludo!
Un saludo,

Curso Completo GRATIS paso a paso de como programar Android
http://www.aprendeandroid.com
fkohlerg  
#3 Publicado : miércoles, 28 de enero de 2015 3:46:09(UTC)
fkohlerg

Posición: Newbie

Grupos: Registered
Registrado: 26/01/2015(UTC)
Mensajes: 2
Ubicación: santiago

Agradecimientos: 1 veces
estimado, permítame una observación: es probable que la lectura del gps nunca sea estable con lo cual para el sistema podría ser indiferente si esta corriendo. no convendría agregar otro sensor, tal como el acelerómetro que ayudara a acotar el estado de reposo?

atte
fkohlerg
eledu20  
#4 Publicado : domingo, 8 de febrero de 2015 18:56:07(UTC)
eledu20

Posición: Newbie

Grupos: Registered
Registrado: 21/01/2015(UTC)
Mensajes: 5
Ubicación: Madrid

Fue agradecido: 1 vez/veces in 1 publicación(es).
fkohlerg escribió:
estimado, permítame una observación: es probable que la lectura del gps nunca sea estable con lo cual para el sistema podría ser indiferente si esta corriendo. no convendría agregar otro sensor, tal como el acelerómetro que ayudara a acotar el estado de reposo?

atte
fkohlerg



de hecho parece la más lógica, porque puedes estar mareado y dando pasos pequeños que generen lecturas de GPS y que no siempre salte la alarma... De hecho también puede ser buena idea poner el acelerómetro y en la recogida de lecturas un if para que detecte movimiento Z o X o Y superior a 15m/s para detectar una caida y activarse ahí una alarma.... Me gusta la idea!!!!


Saludos!
elteixe  
#5 Publicado : domingo, 8 de febrero de 2015 19:22:42(UTC)
elteixe

Posición: Newbie

Grupos: Registered
Registrado: 30/12/2014(UTC)
Mensajes: 8
Ubicación: talavera

Gracias a todos por responder,creo que voy a optar por utilizar el acelerómetro.
Algunas nociones sobre como configurarlo? Casi todo lo que leo está en ingles y ando un poco verde...
Muchísimas gracias!!
elteixe  
#6 Publicado : lunes, 16 de marzo de 2015 12:13:47(UTC)
elteixe

Posición: Newbie

Grupos: Registered
Registrado: 30/12/2014(UTC)
Mensajes: 8
Ubicación: talavera

Buenas de nuevo, a ver si alguien me orienta un poco. Sigo con mi pequeña aplicacion.
A parte de usar el acelerometro, lo que he pensado es agregarle al GPS un reloj. Que cuando este parado el GPS y pasen X minutos salte una alarma o algo parecido.
Entonces yo escribo el codigo, pero al hacer referencia al Location del GPS y a la lectura del reloj, no me reconoce los datos. Como puedo unir los dos datos que arrojan GPS por un lado y Reloj por otro, para unirlos en un if que me diga que cuando esta parado y pasan 5 segundos por ejemplo, pueda iniciar una alarma.
Bueno no se si me explico bien.
Gracias de antemano


Código:
public void updateLocation(Location ipPos) {		
					
		lblLatitud.setText("Latitud: " + String.valueOf(ipPos.getLatitude()));
		lblLongitud.setText("Longitud: " + String.valueOf(ipPos.getLongitude()));
		lblVelocidad.setText("Velocidad: " + String.valueOf(ipPos.getSpeed()));
		float vel = ipPos.getSpeed();
				
		
	}	
	public void cronometro() {
			myChronometer.start();
			myChronometer.setOnChronometerTickListener(
        		new Chronometer.OnChronometerTickListener(){

					@Override
					public void onChronometerTick(Chronometer chronometer) {
						// TODO Auto-generated method stub
						long myElapsedMillis = SystemClock.elapsedRealtime() - myChronometer.getBase();
					}
        		}
        );
	}	
	if (!ipPos.hasSpeed() && (myElapsedMillis>5000));{
		// si no hay movimiento y han pasado 5 segundos
		//inicio la alarma
	}	
	
	}
	
}


admin  
#7 Publicado : lunes, 23 de marzo de 2015 21:46:44(UTC)
admin

Posición: Administration

Grupos: Administrators
Registrado: 07/10/2010(UTC)
Mensajes: 436
Hombre
Ubicación: España

Agradecimientos: 38 veces
Fue agradecido: 49 vez/veces in 48 publicación(es).
Lo tienes que poner en cada "tic" del contador, debes hacer esa comprobacion ahi.

Un saludo.
Un saludo,

Curso Completo GRATIS paso a paso de como programar Android
http://www.aprendeandroid.com
elteixe  
#8 Publicado : miércoles, 25 de marzo de 2015 20:13:48(UTC)
elteixe

Posición: Newbie

Grupos: Registered
Registrado: 30/12/2014(UTC)
Mensajes: 8
Ubicación: talavera

Muchas gracias por la respuesta, andaba un poco perdido,voy a probar a ver si soy capaz de dar con ello.
Un saludo
Usuarios navegando este tema
Guest
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.