2010-12-09 7 views
5

¿Alguien puede dar un ejemplo de cómo usar el sensor de proximidad? Intenté usarlo de la misma manera que otros sensores, pero no funciona.No se han podido obtener los valores del sensor de proximidad en android

Este es el fragmento de código que he estado usando:

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); 

Por favor, dime dónde voy mal.

Respuesta

5

registerListener(SensorListener, int, int) El método es obsoleto, utilice registerListener(SensorEventListener, Sensor, int) lugar:

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

Además debería guardar una referencia a su Sensor(Event)Listener, para poder anular el registro de la misma.

2

Gubbel hace un punto válido. Por favor usa la última API.

También tenga en cuenta que el sensor de proximidad se implementa de forma diferente a
los otros sensores. Mientras que los otros sensores pueden "sondearse", el sensor de proximidad
está basado en interrupciones.

para que pueda obtener un onSensorChanged caso sólo cuando se produce un estado de proximidad
de transición (es decir, cerca a lejos o muy lejos a cerca).

A menudo, el sensor de proximidad se implementa utilizando el hardware del sensor de luz.
Por lo tanto, puede iniciar su aplicación y cubrir/descubrir el sensor de luz en la parte superior
de su dispositivo. Si lo hace, activará las transiciones del sensor de proximidad
y seguramente obtendrá datos (0/1 o lejos/cerca) en su aplicación.

Más información sobre Proximity sensor on Android.

Cuestiones relacionadas