2011-05-23 17 views
5

Cuando se utiliza el sensor de luz, tengo un problema en el caso onSensorChanged() no se activa. La razón es que cuando el oyente está registrado, si el valor de lux permanece constante, no hay cambio y, por lo tanto, no hay evento. Sin embargo, ¡aún quiero saber el valor de lux! ¡Hay una diferencia entre un valor lux constante de 0 y una constante de 60,000!sensor de luz Android no evento desencadenante

Después de algunas investigaciones, se dieron cuenta de que no hay manera de leer directamente el valor del sensor de lux. Entonces, ¿cómo obtengo el valor lux si es constante y, por lo tanto, nunca desencadenará un evento? ¿Hay alguna forma de establecer inicialmente un valor falso (como -1) para que siempre ocurra un evento? ¿O estoy pensando en esto mal?

¡Cualquier ayuda sería muy apreciada!

+1

he señalado, que Android 2.3.4 notifica oyente con valor actual tan pronto como su domicilio. Mientras que Android 2.2 no hace esto. – inazaruk

+0

Interesante, mi teléfono es 2.3.1. Tendrá que encontrar a alguien con 2.3.4 para probar. – Glitch

+0

¿Qué teléfono estás usando? –

Respuesta

0

Estoy bastante seguro de que no hay solución a este problema. Solo debe esperar que el lux cambie dentro de un período de tiempo determinado, antes de preguntar al usuario directamente. Ahh bien.

2

Comprobar siguiente ejemplo, se explica cómo utilizar los sensores

Android Light Sensor

+0

Eso es lo que he estado haciendo. El problema es que si el lux es constante, un evento no se activará. Usando ese código que vinculó, coloque algo sobre el sensor de luz para mantener una lux constante de 0. Ahora inicie la aplicación. Nunca obtendrás un valor, ni siquiera un valor de 0. Simplemente nunca informa nada. Quiero que informe el valor una vez, como era de esperar, pero no es así. – Glitch

+0

¿Me puede dar su código fuente para que pueda obtener más idea –

+0

Sé que es la mejor solución, pero tal vez puede comprobar la constante dentro de un temporizador? – Fredrik

Cuestiones relacionadas