2009-12-20 2 views
1

디지털 나침반에서 데이터를 읽는 응용 프로그램을 만들려고합니다. 나는 책 전문 안드로이드 응용 프로그램 개발의 코드를 재사용하려고하지만, 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 버전에서 센서를 사용하는 방법을 알고 있습니까?

감사합니다.

답변

6

실제로 ID가 아닌 Senor 개체를 전달해야합니다.

방법은 바로되지 않습니다

Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); sensorManager.registerListener(sensorListener, sensor, SensorManager.SENSOR_DELAY_FASTEST)

1

, 당신은 대신

registerListener(SensorEventListener, Sensor, int) 

을 사용해야합니다.

1

동일한 문제가 있었지만 첫 번째 2 개의 매개 변수를 (SensorEventListener)와 (Sensor)로 캐스팅했을 때 효과가있었습니다. 그런 다음 문제점이 어떤 이유로 "센서"가 아닌 "객체"유형으로 선언했기 때문에 Eclipse가 매개 변수의 유형을 식별하지 못했습니다.

mSensorManager.registerListener((SensorManager)this, (Sensor)mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); 

을하지만 지금은 제대로 나는 더 이상 캐스트를 필요가 없습니다 형 센서로 mAccelerometer를 선언 한 :

나를 위해 일했다.