Android SensorEventListener проблема - PullRequest
1 голос
/ 20 декабря 2009

Я пытаюсь создать приложение, которое считывает данные с цифрового компаса.Я попытался повторно использовать код из книги «Профессиональная разработка приложений для Android», но в среде IDE появилась заметка

Тип SensorListener устарел

Я думаю, это потому, что код изкнига написана для более ранней версии SDK, поэтому я попытался использовать SensorEventListener.

Затем, когда я попытался зарегистрировать слушателя

sensorManager.registerListener(sensorListener, SensorManager.SENSOR_ORIENTATION, SensorManager.SENSOR_DELAY_FASTEST);

, возникла ошибка:

Метод registerListener (SensorListener, int, int) в типе SensorManager не применим для аргументов (SensorEventListener, int, int)

, поэтому я попытался привести SensorEventListener к SensorListener, ноприложение не работает.

Кто-нибудь знает, как использовать датчик в новых версиях SDK?

Спасибо.

Ответы [ 4 ]

8 голосов
/ 20 декабря 2009

Существует отдельный класс SensorEventListener, который необходимо использовать. Смотри здесь .

6 голосов
/ 21 декабря 2009

Вам действительно нужно передать объект Senor, а не только его идентификатор.

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

1 голос
/ 17 декабря 2011

У меня была та же самая проблема, но когда я произвел первые 2 параметра как (SensorEventListener) и (Sensor), это сработало. Затем я понял, что проблема заключалась в том, что по какой-то причине я объявил Датчик как тип «Объект», а не как «Датчик», поэтому Eclipse не смог определить типы параметров.

Это сработало для меня:

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

Но теперь я правильно объявил mAccelerometer как датчик типа. Мне больше не нужны приведения.

1 голос
/ 18 октября 2011

Метод просто устарел, вы должны использовать

registerListener(SensorEventListener, Sensor, int) 

вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...