android SensorEventListener问题
我想创建一个从数字罗盘读取数据的应用程序。我试图重新使用从书中专业Android应用开发的代码,但IDE显示的备忘android SensorEventListener问题
类型SensorListener已过时
我想这是因为从书中代码的编写早期的SDK版本,所以我尝试使用SensorEventListener。
然后,当我试图注册监听
sensorManager.registerListener(sensorListener, SensorManager.SENSOR_ORIENTATION, SensorManager.SENSOR_DELAY_FASTEST);
错误出现了:
在类型的SensorManager方法registerListener(SensorListener,INT,INT)是不适用的参数( SensorEventListener,int,int)
所以我尝试将SensorEventListener强制转换为SensorListener,但应用程序不起作用。
有谁知道如何在较新的SDK版本中使用传感器?
谢谢。
实际上你需要传入一个Senor对象,而不仅仅是它的ID。
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); sensorManager.registerListener(sensorListener, sensor, SensorManager.SENSOR_DELAY_FASTEST)
方法正在过时,你必须使用
registerListener(SensorEventListener, Sensor, int)
代替。
我有同样的问题,但当我铸造的第一个2参数(SensorEventListener)和(传感器)它的工作。然后我意识到问题在于,由于某种原因,我将Sensor声明为类型“对象”而不是“传感器”,所以Eclipse未能识别参数的类型。
这为我工作:
mSensorManager.registerListener((SensorManager)this, (Sensor)mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
但现在我已经正确地宣布mAccelerometer类型传感器我不再需要转换。