Android акселерометр - PullRequest
       4

Android акселерометр

2 голосов
/ 21 декабря 2010

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

Я думаю, что мне не хватает одной важной части, но я не могу понять это.

public class Accelerometer extends Activity {

    SensorManager sensorManager;
    Sensor accelerometer;

    private SensorEventListener sensorEventListener = new SensorEventListener() {

        public void onAccuracyChanged(Sensor sensor, int accuracy) {

        }

        public void onSensorChanged(SensorEvent event) {

            float x = event.values[0];
            float y = event.values[1];
            float z = event.values[2];
            update(x, y, z);
        }
    };

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
        accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    }

    public void update(float x, float y, float z) {

        Log.v("semajhan", "x: " + x + " y: " + y + " z: " + z);
    }

    protected void onResume() {
        super.onResume();
        sensorManager.registerListener(sensorEventListener, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
    }

    protected void onPause() {
        super.onPause();
        sensorManager.unregisterListener(sensorEventListener);
    }
}

Кажется, моя проблема в том, что я не знаю, как на самом деле получить доступ к акселерометру.

Как только я смогу получить эти значения, я могу двигаться вперед, но сначала мне нужно это понять.

1 Ответ

3 голосов
/ 22 декабря 2010

Ваш код мне подходит.Это похоже на рабочие примеры, которые я также использовал для получения данных датчика.Одна вещь может быть проблематичной.Вы уверены, что у вас есть датчик такого типа на вашем устройстве?

Чтобы проверить, что используется

public List<Sensor> getSensorList (int type) 

функция SensorManager.Вы можете получить полный список датчиков, доступных на вашем устройстве, если вы используете type = Sensor.TYPE_ALL в вызове функции, и просмотрите все элементы списка.

ОБНОВЛЕНИЕ:

Попробовал свой код.Это полностью функционально.Проблема в том, что отображение следов отключено на вашем Nexus.Для включения трассировки зайдите в Настройки-> Приложения-> Разработка и отметьте опцию Отладка по USB.Без этого вы не получите никаких следов.

...