2010-12-09 4 views
5

Quelqu'un peut-il donner un exemple d'utilisation du capteur de proximité? J'ai essayé de l'utiliser de la même manière que les autres capteurs, mais ça ne marche pas.Impossible d'obtenir les valeurs du capteur de proximité en android

C'est l'extrait de code que j'utilise:

final SensorManager mSensorManager; 
final Sensor mproximity; 

mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); 
mproximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); 

mSensorManager.registerListener(new SensorListener(){ 

public void onAccuracyChanged(int arg0, int arg1) { 
    // TODO Auto-generated method stub 
    Toast.makeText(test.this,"proximity sensor accu ", Toast.LENGTH_SHORT).show(); 
} 

public void onSensorChanged(int arg0, float[] arg1) { 
    // TODO Auto-generated method stub 
    Toast.makeText(test.this,"proximity sensor ", Toast.LENGTH_SHORT).show(); 
} 

}, Sensor.TYPE_PROXIMITY, 1); 

S'il vous plaît me dire où je me trompe.

Répondre

5

La méthode registerListener(SensorListener, int, int) est dépréciée, utilisez registerListener(SensorEventListener, Sensor, int) à la place:

mSensorManager.registerListener(proximityListener, 
     mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY), 
     SensorManager.SENSOR_DELAY_UI); 

De plus, vous devriez enregistrer une référence à votre Sensor(Event)Listener, pour être en mesure de désenregistrer.

2

Gubbel constitue un point valide. Veuillez utiliser la dernière API.

Notez également que le capteur de proximité est implémenté différemment de
les autres capteurs. Alors que les autres capteurs peuvent être "interrogés", le capteur de proximité
est basé sur une interruption.

Alors vous obtenez un onSensorChanged événement uniquement lorsqu'un lieu de transition d'état de proximité
(c.-à-près à loin ou de loin à proximité).

Souvent, le capteur de proximité est implémenté en utilisant le matériel de capteur de lumière.
Ainsi, vous pouvez lancer votre application et couvrir/découvrir le capteur de lumière sur le haut
de votre appareil. Cela déclenchera les transitions capteur de proximité
et vous obtiendrez sûrement des données (0/1 ou loin/proche) dans votre application alors.

Plus d'infos sur Proximity sensor on Android.

Questions connexes