Sensor de gravedad de Android (TYPE_GRAVITY) para 2.1

Tengo un software diseñado para 2.3.3 donde estoy usando el sensor de gravedad.

Código a continuación -

private SensorManager sman = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
private Sensor magnetfield, gravity;
...
magnetfield = sman.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
gravity = sman.getDefaultSensor(Sensor.TYPE_GRAVITY);

Decidí agregar soporte para la versión 2.1. Sin embargo, parece que TYPE_GRAVITY no es compatible con 2.1 y aparece un error que indica que Sensor.TYPE_GRAVITY ya no se reconoce.

Preguntas: A) Cuando busco "Android gravity sensor 2.1", Google busca enlaces a videos que muestran el sensor de gravedad en dispositivos 2.1. ¿Significa eso que hay una forma de acceder a él? B) Si no es así, ¿cuál es la versión más baja que puede usar esto? No se pudo encontrar en el SDK.

Muchas Gracias

preguntado el 08 de noviembre de 11 a las 17:11

¿Resolviste esto? Estoy buscando una implementación java del sensor TYPE_GRAVITY basada en solo tres sensores básicos. -

2 Respuestas

Al mirar el código fuente, puede ver que el sensor de gravedad en realidad se calcula usando un filtro Butterworth. También hice una pregunta sobre dsp (aquí). Espero que el enlace ayude porque me ayudó a entender muchas cosas.

Para el sensor de gravedad en las versiones <2.3, debe implementar ese filtro usted mismo si desea obtener los mismos resultados.

Aquí es el código fuente.

Edición posterior: ¡Se agregó un enlace válido!

Respondido 13 Abr '17, 15:04

Falta el código fuente, proporcione el código si está disponible. - Sree

Gitorious se ha comprado, por lo que el enlace está muerto de nuevo. - jjcf89

Enlace al mismo archivo en el repositorio de origen de Android. Probablemente una versión más reciente del archivo. android.googlesource.com/platform/frameworks/native/+/984826c/… - jjcf89

Sensor TYPE_LINEAR_ACCELERATION y TYPE_GRAVITY están disponibles desde el nivel de API 9 (Android 2.3), por lo que no podrá utilizarlos en 2.1.

Si quieres implementarlo, supongo que deberías jugar con la orientación del teléfono celular, para saber cómo está orientado y, en consecuencia, los componentes de la gravedad en la aceleración.

respondido 08 nov., 11:23

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.