Датчик акселерации
Датчик ориентации
Устройство с предустановленной ОС Android включает датчик ориентации, который используется для распознавания положения телефона в пространстве. Как трактуются координатные оси в Android продемонстрировано на рис. 9.1.
Ориентация в Android определяется тремя величинами:
· Азимут в градусах - угол между осью X и северным направлением
0 <= azimuth <= 360.
· Высота в градусах - угол между осью У и горизонтальным положением устройства.
-180<= pitch <= 180.
· Вращение в градусах - угол между осью X и горизонтальным положением устройства.
-90 <= roll <= 90.
Рис. 9.1.Направление координатных осей в датчике ориентации
Используйте метод getSystemService(Context.SENSOR_ SERVICE) чтобы инициализировать SensorManager. Далее используйте метод getDefaultSensor(Sensor.TYPE_ORIENTATION) чтобы создать объект класса Sensor и инициализировать его как датчик ориентации.
Для работы с датчиком ориентации необходимо реализовывать два метода, объявленные в интерфейсе: первый проверяет изменение точности, второй вызывается всякий раз, когда происходит изменение показаний датчика.
Android поддерживает большое число датчиков, которые могут быть использованы для получения информации о среде, окружающей мобильное устройство. Сейчас мы познакомимся, как в приложении использовать датчик ускорения.
Для того, чтобы использовать датчик ускорения, в программах необходимо реализовывать тот же интерфейс, что был описан выше.Параметр rate метода registerlistener() позволяет задавать точность показаний датчика ускорения устройства. Используйте метод getSystemService(Context.SENSOR_SERVICE) чтобы инициализировать SensorManager. Далее используйте методgetDefaultSensor(Sensor.TYPE_ACCELEROMETER) чтобы создать объект класса Sensor и инициализировать его как датчик акселерации. Рассмотрим поля объекта события метода onSensorChanged(SensorEvent):
· int accuracy - определяет точность измерений.
· long timestamp - время в наносекундах, идентифицирующее начало события.
· float[] values - значения в системе СИ.
· values[0] - текущее ускорение по X минус ускорение свободного падения по оси X.
· values[1] - текущее ускорение по Y минус ускорение свободного падения по оси Y.
· values[2] - текущее ускорение по Z минус ускорение свободного падения по оси Z.