我正在尝试读取接近传感器的状态(我也尝试读取光传感器...)使用以下代码:
@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会更改默认文本(当我尝试读取加速度传感器时,它会工作...),但当我阻止光传感器时,什么也不会发生。
当我在打电话时,传感器工作(当我用手挡住传感器时,屏幕就会关闭)。
我是不是漏掉了什么?
向您致敬,安德烈
发布于 2010-09-05 03:58:00
哦,我在registerListener上使用了错误的参数...
而不是
sensorManager.registerListener(this, SensorManager.SENSOR_LIGHT);使用:
sensorManager.registerListener(sensorEventListener, sensorManager
.getDefaultSensor(Sensor.TYPE_PROXIMITY),
SensorManager.SENSOR_DELAY_FASTEST);现在可以工作了!
发布于 2014-02-18 20:24:31
这是你所有的代码吗?我猜你必须用下面的代码来实现SensorEventListener
@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] );
}
}另外,为什么你要注册这么多的传感器?
https://stackoverflow.com/questions/3597750
复制相似问题