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;
}