Отчет по практике: Поиск датчиков на устройстве.

 

Чтобы найти все датчики, доступные на данной платформе, используйте метод

getSensorList из объекта SensorManager, передав ему константу Sensor. TYPEALL:

List<Sensor> allSensors = SensorManager.getSensorList(Sensor.TYPE_ALL);

31. Логика работы датчиками.

32. Какие характеристики датчиков нам доступны для принятия решения об их использовании.

 

Параметр SensorEvent, который передается в метод onSensorChanged, описывает

все события, связанные с датчиком, с помощью четырех свойств.

• sensor. Объект Sensor, инициировавший событие.

• accuracy. Точность датчика во время поступления события (низкая, средняя,

высокая или недостоверная (см. следующий список)).

• values. Массив чисел типа float, содержащий новые полученные значения.

В следующем разделе будут рассмотрены значения, возвращаемые для каждого типа датчика.

• timestamp. Время возникновения события, связанного с датчиком (в наносекундах).

 

33. С какой периодичностью можно получать данные с датчиков? Назовите основные именованные константы.

Чтобы следить за показаниями датчика, реализуйте метод интерфейса SensorEventListener, используя методы onSensorChanged для мониторинга значений и onAccuracyChanged для реакции на изменения точности датчика.

Параметр SensorEvent, который передается в метод onSensorChanged, описывает

все события, связанные с датчиком, с помощью четырех свойств.

• sensor. Объект Sensor, инициировавший событие.

• accuracy. Точность датчика во время поступления события (низкая, средняя, высокая или недостоверная (см. следующий список)).

• values. Массив чисел типа float, содержащий новые полученные значения.

В следующем разделе будут рассмотрены значения, возвращаемые для каждого типа датчика.

• timestamp. Время возникновения события, связанного с датчиком (в на

носекундах).

Вы также можете отслеживать точность каждого отдельного датчика, используя

метод onAccuracyChanged. Оба этих обработчика используют значение accuracy для представления степени точности датчика с помощью одной из следующих констант.

• Sensor Manager. SENSO RST ATU S_ ACC U RAC Y_LO W. Говорит о том, что

данные, предоставляемые датчиком, имеют низкую точность и нуждаются

в калибровке.

• SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM. Говорит о средней степени точности датчика и о том, что калибровка может улучшить результат.

• SensorManager.SENSOR_STATUS_ACCURACY_HIGH. Показатели датчика точны настолько, насколько это возможно.

• SensorManager.SENSOR STATUS UNRELIABLE. Данные, предоставляемые датчиком, недостоверны. Это значит, что датчик необходимо откалибровать, иначе невозможно считывать результаты.

Чтобы получать события, генерируемые датчиками, зарегистрируйте свою реализацию интерфейса SensorEventListener с помощью SensorManager. Укажите объект Sensor, за которым вы хотите наблюдать, и частоту, с которой вам необходимо получать обновления.

 

34. Реальные и виртуальные датчики в чем разница?

 

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

Описанные выше TYPE GRAVITY, TYPELINEARACCELERATION

и TYPEROTATIONVECTOR — это пример виртуальных датчиков, которые предоставляются фреймворком. Вместо показаний какого-то определенного устройства они могут использовать комбинацию из нескольких устройств, например акселерометра, магнитометра и гироскопа. В некоторых случаях виртуальные датчики предоставляются самим аппаратным обеспечением. Тогда вы можете выбирать между аппаратной реализацией и версией из фреймворка, хотя по умолчанию будет доступен наилучший вариант. Существуют также виртуальные версии гироскопа и акселерометра с уточненными показаниями, которые пытаются улучшить качество и производительность соответствующих аппаратных датчиков. При этом задействуются фильтры и показания нескольких датчиков, чтобы нормализовать, откорректировать или отфильтровать «сырой» вывод. Чтобы обеспечить предсказуемость и совместимость показаний датчиков на разных платформах и устройствах, объект SensorManager всегда по умолчанию предлагает вам аппаратные реализации. Вы можете поэкспериментировать со всеми доступными датчиками заданного типа, чтобы определить лучший вариант для своего приложения.

 

Функция вибрации. Назовите два основных варианта настройки вибрации по длительности.

 

Вы можете использовать функцию виброзвонка в устройстве для сопровождения своих уведомлений. Android позволяет управлять виброзвонком: вы можете оповестить пользователя о новой доступной информации или передать ее напрямую, указав конкретный шаблон. Прежде чем добавить виброзвонок в свое приложение, необходимо указать в манифесте пользовательское полномочие VIBRATE:

cuses-permission android:name=«android.permission.VIBRATE»/>

Чтобы использовать определенный шаблон вибрации, передайте в свойство vibrate объекта Notification массив значений типа long. Постройте массив, учитывая, что значения продолжительности вибрации (в миллисекундах) чередуются со значениями паузы между ними. В следующем примере показано, как изменить уведомление, чтобы одна секунда вибрации сменялась одной секундой паузы на протяжении пяти секунд:

long[] vibrate = new long[] { 1000, 1000, 1000, 1000, 1000 };

notification.vibrate = vibrate;

Вы можете воспользоваться этой тонкой возможностью для передачи своим

пользователям контекстной информации.

еще рефераты
Еще работы по истории