Android датчик силы тяжести (TYPE_GRAVITY) для 2.1 - PullRequest
3 голосов
/ 08 ноября 2011

У меня есть программное обеспечение, разработанное для 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 ]

8 голосов
/ 23 ноября 2011

Посмотрев на исходный код, вы можете увидеть, что датчик силы тяжести фактически вычисляется с использованием фильтра Баттерворта. Я также задал вопрос по dsp ( здесь ). Надеюсь, что ссылка поможет, потому что она помогла мне понять много вещей.

Для датчика силы тяжести в версиях <2.3 вам необходимо самостоятельно реализовать этот фильтр, если вы хотите получить те же результаты. </p>

Здесь - исходный код.

Позднее редактирование: добавлена ​​действующая ссылка!

2 голосов
/ 08 ноября 2011

Датчик TYPE_LINEAR_ACCELERATION и TYPE_GRAVITY доступны начиная с уровня API 9 (Android 2.3), поэтому вы не сможете использовать их на 2.1.

Если вы хотите реализовать его, я думаю, вам следует поиграть с ориентацией мобильного телефона, чтобы вы могли знать, как он ориентирован, и, соответственно, компоненты гравитации в ускорении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...