2010-08-30 7 views
1

Je suis en train de lire l'état du capteur de proximité (aussi je tryed lire le capteur de lumière ...) en utilisant le code suivant:Android SENSOR_PROXIMITY/SENSOR_LIGHT sur Motorola Droid (Milestone)

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    txtStatus = (TextView)findViewById(R.id.txtStatus); 
    sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    sensorManager.registerListener(this, SensorManager.SENSOR_PROXIMITY); 
} 

@Override 
protected void onStart() { 
    super.onStart(); 
    sensorManager.registerListener(this, SensorManager.SENSOR_LIGHT); 
} 

@Override 
public void onResume(){ 
    super.onResume(); 
    sensorManager.registerListener(this, SensorManager.SENSOR_LIGHT); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    sensorManager.unregisterListener(this, SensorManager.SENSOR_LIGHT); 
} 

Le txtStatus change le texte par défaut quand il y a un changement dans le capteur (quand j'essaie de lire l'accéléromètre, ça marche ...), mais quand je bloque le capteur de lumière, rien ne se passe. Lorsque je suis en communication, le capteur fonctionne (lorsque je mets la main bloquant le capteur, l'écran s'éteint).

Il me manque quelque chose ici?

Cordialement, André

Répondre

2

Oh j'utilise le mauvais paramètre sur registerListener ...

au lieu de

sensorManager.registerListener(this, SensorManager.SENSOR_LIGHT); 

utilisation:

sensorManager.registerListener(sensorEventListener, sensorManager 
       .getDefaultSensor(Sensor.TYPE_PROXIMITY), 
       SensorManager.SENSOR_DELAY_FASTEST); 

fonctionne maintenant!

0

Est-ce tout votre code? Je suppose que vous devez mettre en œuvre SensorEventListener avec le code ci-dessous

@Override 
public void onSensorChanged(SensorEvent event) { 
    if (event.sensor.getType() == Sensor.TYPE_LIGHT) { 
     Log.i(TAG, "Light Change :" + event.values[0]); 
    } 
    if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) { 
     Log.i(TAG, "PROXIMITY Change :" + event.values[0]); 
    } 
} 

D'ailleurs, pourquoi inscrivez-vous vos capteurs tant de ti

Questions connexes