我正在尝试使用以下代码读取接近传感器的状态(也试图读取光传感器...):

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


当传感器发生变化时(当我尝试读取加速度计时,txtStatus会更改默认文本),但是当我挡住光传感器时,什么也没发生。

当我通话时,传感器正常工作(当我把手挡住传感器时,屏幕将关闭)。

我在这里想念什么吗?

问候,
安德烈

最佳答案

哦,我在registerListener上使用了错误的参数...

代替

sensorManager.registerListener(this, SensorManager.SENSOR_LIGHT);


采用:

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


现在工作!

关于android - 摩托罗拉Droid(里程碑)上的Android SENSOR_PROXIMITY/SENSOR_LIGHT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3597750/

10-11 20:26