Проблема работы с датчиком - акселерометр - PullRequest
0 голосов
/ 08 июня 2011

У меня Galaxy Tab 1000.

Я пытаюсь написать код, который будет идентифицировать ЛЮБОЕ движение.

У меня версия 2.2 на телефоне.

Это действующий код.


OnCreate()
    mySensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
        mySensorManager.registerListener(mySensorEventListener, mySensorManager
                .getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                SensorManager.SENSOR_DELAY_NORMAL); // 

Это реализация, измененная сенсором (я думаю, очень простая), но не работающая


if (event.sensor.getType() == SensorManager.SENSOR_ACCELEROMETER) // Do WORK

Event.sensor.getType () возвращает 1

Если я это сделаю: getSensorList (Sensor.TYPE_ALL);Я получаю датчики компаса, компаса, BMA150 (ускорение), температуры, магнита, приближения, света и гироскопа.

(странно - я думал, что это только в 3.0)

Посоветуйте, пожалуйста, как я могу получить обнаружение движения на телефоне.

спасибо


1 Ответ

1 голос
/ 16 июня 2011

Меня немного смущает, что именно вы хотите сделать, но из того, что я беру, вы хотите получить данные ускорения в вашем onSensorChanged.Ваш on create выглядит хорошо, однако вы можете проверить, правильно ли они регистрируют слушателя, проверив bool, который возвращается из registerListener.Вот что я делаю, слушая событие и получая возвращенные значения.

    @Override
    public void onSensorChanged(SensorEvent event)
    {
        // If the sensor data is unreliable return
        if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
        {
            //Toast.makeText(main.this, "Sensor Status Unreliable",Toast.LENGTH_SHORT).show();
            return;
        }


        // Gets the value of the sensor that has been changed
        switch (event.sensor.getType())
        {
        case Sensor.TYPE_ACCELEROMETER:
            m_vAccel = event.values.clone();
            break;
        }

В противном случае вы также можете использовать датчик линейного ускорения, который совпадает с показаниями акселерометра и минус силы тяжести.http://developer.android.com/reference/android/hardware/SensorEvent.html

...