android: Урок 137 (часть 3). Сенсоры в андроид устройствах. Ориентация (программирование)

Автор Sergei Plotnenko
android: Урок 137 (часть 3). Сенсоры в андроид устройствах. Ориентация (программирование)

Ориентация север попробуем использовать данные сенсора ускорение и добавим к ним данные с сенсором магнитного поля эти два набора данных при определённых манипуляциях дадут на наклона устройства угла будет 3 по одному для каждой оси создадим проект xml in Activity Java oncreate мы получаем сенсоры ускорения Type акселерометр и магнитного поля вон резюме вешаем слушателя и запускаем таймер который каждые 400 будет определять ориентацию устройства в пространстве и выводить эту инфу на переменную rotation получаем значение текущей ориентации экрана — это нам понадобится для конкретного определение ориентации davis-monthan отключаем слушателя и таймер этот формат просто формате значение от одного знака после запятой showinfo покажет данные массива в textview, но сначала эти данные надо вычислить этим займутся следующие два метода метод девается определяет текущее ориентацию.

Давай в пространстве без учёта поворота экрана для этого мы сначала вызываем Method Get rotation Matrix который берет данные ускорение магнитного поля и формируют из них данных в переменную R далее Method Get orientation из этой матрицы позволяет получить массив значений и поворота 3 осей остаётся перевести радианы в градусы методом тот адрес и у нас есть готовый массив с углами наклона одевайся Method Get actual диссертация аналогичный девайс ориентация, но он позволяет учесть ориентацию экрана до этого мы дополнительно вызываем метод. Прима координат систем которые пересчитают на матрицу с помощью переменных X и Y Axis мы. Передаем в этот метод данные о том как оси поменялись местами при повороте экрана слушать.

Александр получает данные ускорение магнитного поля вышитых массивы валяюсь Excel evolis магнит запускаем приложение кладем устройство на ровную поверхность ориентация данные по ориентации в пространстве без учёта ориентации экрана устройства ориентация 2 данные по ориентации в пространстве с учётом ориентации экрана устройства они равные данным ориентацию устройство находится в нормальной ориентации здесь в отличие от ускорения осень немного в другом порядке показаны первая цифра — это угол по оси Z в горизонтальном положении устройство — это число показывает отклонение от севера.

То есть — это компас поверните устройство сохраняя горизонтальное положение так чтобы первая цифра стала близка к нулю теперь. Наш девиз должен смотреть строго на север вторая цифра basics. То есть если устройство слегка направо проткнуть воображаемой с пиццей и попробовать потом на ней по вращать будет меняться именно — это вторая цифра протыкатель ничего не будем. Возьмите устройство за его верхнюю дальнюю от вас сторону и поднимайте её на себя какую-то хотите что-то посмотреть на экране. Нижняя сторона при этом лежит на столе видно. Как меняется вторая цифра устройство будет вертикально стоять на. Нижней стороне — это значение должно стать равным -90. То есть — это прямую. Попробуйте также поднимать нижнюю сторону оставляя верхнюю на столе угол будет идти к 93. Цифра — это угол по оси Y тут аналогичная CX если положить устройство на стол значит поднимать его правую сторону оставляя левую на столе как-будто переворачиваем страницу будет меняться третья цифра она покажет угол наклона по оси Y. Попробуйте также поднимать левую и правую на столе тем самым мы получили полную картину положение одевайся в пространстве. Попробуйте поменять ориентацию экрана и заблокировать его в настройках и снова протестируйте наклоны вы увидите, что выводится относительно стандартной ориентации экрана ориентация относительно текущей ориентации экрана данные по ориентации. Также можно получить без всяких манипуляций используя сенсор типа объявлен устаревшим цепи 28 прочее. Ещё немного инфы по теме Sens цифры бывают реально и виртуально и реально — это датчики которые дают назначения виртуальный используют значение реальных ipanema вычисляют свои значения рассмотренных нами примерах мы использовали реально ускорение из него сами посчитали чисто ускорение и. Гравитацию используемые нами там же сенсор и чистого ускорений и гравитации являются виртуальными и также как и мы вычисляют свой результат. Только я думаю, что механизм подсчета там отличен от нашего не позволяет получить более реальные результаты сенсор гироскоп показывает скорость вращения по осям в радиан в секунду сенсора есть такая характеристика как Power потребляемая мощность миллиампера чем она ниже тем. Разумеется лучше для батареек. Если ваше приложение обязательно используют сенсор и не будет без него работать. Вы можете сказать — это в манифесте с помощью бегаю,, что в этом случае Google Play не должен дать поставить приложение устройство которое не имеет указанного сенсор пример для сенсора ускорения значение для сенсоров можно найти в клипе в секции сенсор на этом всё до следующего урока.

0 комментариев
0

Читайте также