2011-01-14 18 views

Respuesta

9

No hay "valores exactos" en general, variarán según el dispositivo. La clase Sensor tiene getMaximumRange(). Como la aceleración puede ser positiva o negativa, supongo que puedes multiplicar ese valor de forma segura por -1 para obtener el valor mínimo.

+0

Acepto que el valor mínimo es el negativo del valor devuelto por getMaximumRange(). Aunque es demasiado pequeño para marcar la diferencia en la mayoría de las aplicaciones, sospecho (debido a la representación del complemento en dos de la lectura del sensor) que el valor máximo positivo real es un valor de resolución menor que getMaximumRange(). – gregS

+0

Bueno, de hecho, tengo en mi escritorio un teléfono con un acelerómetro 'Bosch Sensortec GmbH' que devuelve' 156.88' para 'getMaximumRange()' pero vergonzosamente falla al entregar, teniendo un rango máximo total de exactamente '39.225403' en cada eje (Sacudí y estrellé el dispositivo resistente tan fuerte como pude para probar esto). Entonces, lo que devuelve este método no es confiable, evento si los sensores informan tener una alta precisión (lo dicen todo el tiempo en este dispositivo). Por otro lado, mi Nexus 6P podría informar valores de rango sobre '150ms^2' por eje, con una aceleración total máxima de' 135.92858447775066ms^2'. –

1

¡Mide la magnitud física! Realmente no sé si hay algún límite práctico introducido por el dispositivo de hardware, pero no creo que seas tan rápido ... Dado que es una magnitud vectorial, el signo significa la sensación de tu movimiento .

PD: Supongo que quiere decir Sensor.TYPE_ACCELEROMETER eventos valores.

+1

Cada sensor de hardware tiene límites. Los desarrolladores de controladores deberían haber establecido estos límites. Si se alcanza un valor más allá de ese límite, se recortará el valor informado. – NickSoft

Cuestiones relacionadas