Android датчик силы тяжести (TYPE_GRAVITY) для 2.1
У меня есть программное обеспечение, разработанное для 2.3.3, где я использую датчик гравитации.
Код ниже -
private SensorManager sman = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
private Sensor magnetfield, gravity;
...
magnetfield = sman.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
gravity = sman.getDefaultSensor(Sensor.TYPE_GRAVITY);
Я решил добавить поддержку версии 2.1. Однако кажется, что TYPE_GRAVITY не поддерживается в 2.1, и я получаю ошибку, что Sensor.TYPE_GRAVITY
больше не распознается
Вопросы - A) Когда я ищу "Android датчик силы тяжести 2.1", он ищет ссылки на видео, которые демонстрируют датчик силы тяжести в устройствах 2.1. Значит ли это, что есть способ получить к нему доступ? Б) Если нет, то какая самая низкая версия, которая может использовать это? Не удалось найти его в SDK.
Спасибо
2 ответа
Посмотрев на исходный код, вы увидите, что датчик силы тяжести фактически вычисляется с использованием фильтра Баттерворта. Я также задал вопрос по dsp ( здесь). Надеюсь, что ссылка поможет, потому что она помогла мне понять много вещей.
Для датчика силы тяжести в версиях < 2.3 вам необходимо внедрить этот фильтр самостоятельно, если вы хотите получить те же результаты.
Вот исходный код.
Позднее редактирование: добавлена действующая ссылка!
Датчик TYPE_LINEAR_ACCELERATION
а также TYPE_GRAVITY
доступны начиная с API Level 9 (Android 2.3), поэтому вы не сможете использовать их на 2.1.
Если вы хотите реализовать его, я думаю, вам следует поиграть с ориентацией сотового телефона, чтобы вы могли знать, как он ориентирован, и, соответственно, компоненты гравитации в ускорении.