Ver Mensaje Individual
  #3  
Viejo 11/08/12, 13:33:09
Avatar de Arce13
Arce13 Arce13 no está en línea
Miembro del foro
Mensajes: 30
 
Fecha de registro: jul 2012
Mensajes: 30
Modelo de smartphone: LG Optimus L5
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Código

Este es el código que funciona perfectamente en el android 2.2.


//Sensor de caida



protected void onResume() {
super.onResume();

SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ACCELEROMETER);
if (sensors.size() > 0) {
sm.registerListener(this, sensors.get(0), SensorManager.SENSOR_DELAY_GAME);
}

}

protected void onStop() {

SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
sm.unregisterListener(this);
super.onStop();

}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {}

@Override
public void onSensorChanged(SensorEvent event) {
if(Caidasid.equals("On") && x==0)
{
synchronized (this) {
long current_time = event.timestamp;
curX = event.values[0];
curY = event.values[1];
curZ = event.values[2];
if (prevX == 0 && prevY == 0 && prevZ == 0) {
last_update = current_time;
last_movement = current_time;
prevX = curX;
prevY = curY;
prevZ = curZ;
}
long time_difference = current_time - last_update;
if (time_difference > 0) {
float movement = Math.abs((curX + curY + curZ) - (prevX - prevY - prevZ)) / time_difference;
int limit = 1500;
float min_movement = (valorCaida);
if (movement > min_movement) {
if (current_time - last_movement >= limit) {

vibrator.vibrate(3000);

Toast.makeText(getApplicationContext(),"Se ha enviado un sms de ayuda" , Toast.LENGTH_SHORT).show();
}



}
last_movement = current_time;
}
prevX = curX;
prevY = curY;
prevZ = curZ;
last_update = current_time;
}

}
}
}

Bueno el valorCaida es un valor que elijo yo primero en la configuración y para el caso del android 4.0.3 LG Optimus L5 me va relativamente bien con el valor 0.00000375 (con el android 2.2 me va bien con el valor0.0000009) pero aunque al principio va bien pero luego se activa el solo y si esta el wifi desactivado y lo activo tb lo asocia como una caída.

Muchas gracias por la ayuda.
Responder Con Cita