SMTH - измерение высоты (Android)

Некоторое время назад во всех новостях было забавное приложение под названием "Отправь меня на небеса" и т. Д. Его цель - поднять свой телефон как можно выше и поймать его, приложение измеряет высоту выброса. Мой вопрос, как это может быть закодировано в Android? Я предполагаю, что датчик акселератора как-то задействован? Некоторые идеи были бы отличными:) PS: Я прошу просто любопытства и, конечно, зародить ради - может быть, когда-нибудь, было бы удобно узнать, как реализовать что-то вроде этого.

1 ответ

Решение

В Android есть интерфейс SensorEventListener. Этот слушатель предоставляет методы, в которых мы можем отловить событие с любого датчика. Игра, о которой вы говорите, могла использовать этот интерфейс, получала показания, когда датчик был акселерометром, как показано ниже, а затем отображала максимальное значение в виде оценки.

@Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)
            return;

        switch (mDisplay.getRotation()) {
        case Surface.ROTATION_0:
            mSensorX = event.values[0];
            mSensorY = event.values[1];
            break;
        case Surface.ROTATION_90:
            mSensorX = -event.values[1];
            mSensorY = event.values[0];
            break;
        case Surface.ROTATION_180:
            mSensorX = -event.values[0];
            mSensorY = -event.values[1];
            break;
        case Surface.ROTATION_270:
            mSensorX = event.values[1];
            mSensorY = -event.values[0];
            break;
        }
        mSensorZ = event.values[2];
        mSensorTimeStamp = event.timestamp;
    }
Другие вопросы по тегам