Android - Problemas con el Acelerómetro

   
Vista:

Problemas con el Acelerómetro

Publicado por Pincho (3 intervenciones) el 25/07/2016 10:59:14
Hola!!!

Estoy realizando una aplicación, en la que necesito que el móvil esté los más horizontal posible para realizar fotos en plano zenital.

Primero lanzo la cámara, y una vez ahi, compruebo que las posiciones x,y, z estén dentro de los parámetros establecidos. En caso de no ser asi, se lanza un toast informando al usuario que debe de corregir la posición del móvil.

Mi problema viene a la hora de hacer estas restricciones, ya que no se donde están almacenados los valores de x,y ,z.

Adjunto el código que tengo actualmente, que siempre me lleva a el else "Movil mal colocado en Z".
¿Se os ocurre alguna solución?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//Codigo
 
 protected void onActivityResult(int requestCode, int resultCode, SensorEvent event, Intent data) { //,View v){
 
        if( SensorManager.DATA_X > -2 && SensorManager.DATA_X < 2){
 
            if( SensorManager.DATA_Y > -2 && SensorManager.DATA_Y <4){
 
                if (SensorManager.DATA_Z > 8 && SensorManager.DATA_Z < 10){
 
                    //RESULTADO
                    if (requestCode == TOMAR_FOTO) {
                        Bitmap imagen = (Bitmap) data.getExtras().get("data");
                        ImageView iv_foto = (ImageView) findViewById(R.id.muestraFoto);
                        iv_foto.setImageBitmap(imagen);
                    }
                    //FIN RESULTADO
 
                }else{
                    Toast.makeText(getApplicationContext(),"Movil mal colocado en Z", Toast.LENGTH_SHORT).show();
                }
 
            }else{
                Toast.makeText(getApplicationContext(),"Movil mal colocado en Y", Toast.LENGTH_SHORT).show();
            }
 
        }else{
            Toast.makeText(getApplicationContext(),"Movil mal colocado en X", Toast.LENGTH_SHORT).show();
        }
 
    }
 
//Fin Código



Muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problemas con el Acelerómetro

Publicado por juanki (173 intervenciones) el 25/07/2016 13:58:15
Hola

¿No será que estás dando muy poco margen para la Z? Según tu código estás comprobando que sea mayor que 8 y menos que 10, osea, solo hay una posibilidad: 9

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas con el Acelerómetro

Publicado por Pincho (3 intervenciones) el 25/07/2016 14:03:49
Gracias por la respuesta!!

Lo he cambiado, pero sigue sin funcionar.
Creo que el problema está en que SensorManager.DATA_Z sólo devuelve true o false, es decir o 0 o 1, por lo que en las 2 primeras restricciones al estar el 0 comprendido entre los dos valores pasa a la siguiente condición, mientras que en z, como los valores entre los que tiene que estar son positivos entra en dicha condicion.

¿Sabeis donde queda almacenado el último dato de cada posicion para poder hacer asi la comparativa como lo muestro en el código?

Muchas gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar