2010-08-13 3 views
4

je essaie de lire les valeurs du capteur de lumière de mon Nexus One, mais seulement I'mgetting valeurs suivantes:Capteur de lumière sur le Nexus One ne renvoie que deux valeurs distinctes

10,0

225,0

et dans quelques cas certaines valeurs beaucoup plus élevées.

Le code:

sensorManager = (SensorManager) context 
       .getSystemService(Context.SENSOR_SERVICE); 
     sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); 

     listener = new SensorEventListener() { 

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

      @Override 
      public void onSensorChanged(SensorEvent event) { 
       Log.d(Constants.TAG, "Brightness: " + event.values[0]); 

      } 

     }; 
     sensorManager.registerListener(listener, sensor, 
       SensorManager.SENSOR_DELAY_NORMAL); 

    } 

Est-ce que quelqu'un a l'expérience avec le capteur de lumière sur le Nexus One ou un autre appareil Android? Mon code est-il la bonne façon de lire les valeurs? Comment puis-je obtenir de meilleures valeurs et plus précises?

Répondre

1

Votre code a l'air bien. Je recevais des valeurs comme celle-ci: 10, 225, 320, 640, 1280, 2600, 3200, 10240. Mais j'avais vraiment besoin de pointer le dispositif vers le soleil pour recevoir des valeurs plus élevées. Éditer: à partir de la caractéristique de capteur de lumière qui peut être obtenue sur mon téléphone en utilisant Android API - 10240 est la valeur la plus élevée qui peut être retournée par ce capteur.

+0

vous avez raison. La chose est, j'ai évidemment juste testé mon application par temps nuageux ou le soir. Nos yeux fonctionnent logarithmique, alors que le dispositif ne fonctionne pas. –

Questions connexes