Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Microsoft Разработка приложений Windows 10 Сенсоры контекста в Windows 10 RSS

Сенсоры контекста в Windows 10

Текущий рейтинг: 1 (проголосовало 5)
 Посетителей: 5466 | Просмотров: 16379 (сегодня 0)  Шрифт: - +

В Windows 10 мы крайне рады возможности представить ряд новых API для взаимодействия с контекстом, которые могут помочь вам в создании приложений, улучшающих жизнь пользователей каждый день. Это включает приложения, которые могут определять присутствие, когда пользователь приближается к устройствам, приложения, которые понимают, гуляет ли пользователь или за рулем, приложения, которые помогают пользователям отслеживать их фитнес-показатели, и многие другие сценарии. Используя данные API вы можете предугадывать потребности пользователей и проактивно предлагать соответствующие персонализированные и релевантные данные или сервисы для улучшения и облегчения их жизни. Это довольно мощная штука как для консьюмерских, так и для корпоративных сценариев.

*
Увеличить

Определение типа активности

Один из новых добавленных API – это средства для определения типа активности (Activity Detection), которые помогает выяснить контекст (пере)движения пользователя. Данные API пытаются понять, что делает человек на основании текущего характера движения: идет, бежит, едет в машине или на велосипеде, находится в неподвижном состоянии или состоянии «покоя». Неподвижное состояние возвращается, когда устройство находится с пользователем, а «покой» — когда пользователь положил устройство на стол или неподвижную поверхность. Вы также можете создавать фоновые триггеры и запрашивать детальную историю вплоть до 30-дневной давности.

Несколько сценариев для использования:

  • Выдавать информацию в зависимости от контекста движения (например, подстраивать темп плейлиста)
  • Изменять поведение приложения с учетом контекста движения (например, автоматически подстраивать фокус, если вы понимаете, что пользователь снимает на камеру во время ходьбы или бега)
  • Отслеживание фитнес-показателей и данных о здоровье
  • Навигация и карты
  • Сохранение энергии (например, избегать постоянного опроса местоположения или WiFi, если устройство находится в состоянии покоя или стационарном состоянии)


Схема работы с API приведена ниже:

// Запрос текущей активности
var reading = await activitySensor.GetCurrentReadingAsync();

// Подпись на изменения в активностях
activitySensor.ReadingChanged += new TypedEventHandler<ActivitySensor, ActivitySensorReadingChangedEventArgs>(ReadingChanged);

// Запрос истории (вплоть до 30 дней)
DateTimeOffset yesterday = ...
var history = await ActivitySensor.GetSystemHistoryAsync(yesterday);
foreach (var entry in history) { ... }

// Использование фоновой задачи
var trigger = new Windows.ApplicationModel.Background.ActivitySensorTrigger(reportIntervalMs);
trigger.SubscribedActivities.Add(ActivityType.InVehicle);

// .. регистрация триггера и т.п.

Более детально API для определения типа активности описаны в MSDN, а пример кода можно найти в коллекции UWP SDK примеров.

Подсчет шагов

Другое полезное добавление – это шагомер, который подсчитывает количество шагов пользователя во время ходьбы или бега. Как и в случае с определением типа активности, информация в истории хранится вплоть до 30 дней.

Типичное приложение, в которой данная функциональность может использоваться – это отслеживание показателей здоровья и фитнес-данных (без необходимости использования дополнительных (носимых) устройств). Шагомер может также комбинировать данные носимых устройств и данные от сенсоров устройства с Windows.

Пример работы с API приведен ниже:

//Получение данных шагомера
pedometer.ReadingChanged += new TypedEventHandler<Pedometer, PedometerReadingChangedEventArgs>(ReadingChanged);

void ReadingChanged(Pedometer sender, PedometerReadingChangedEventArgs args)
   {
    PedometerReading reading = args.Reading;
    if (reading.StepKind == PedometerStepKind.Walking)
        walkingSteps = reading.CumulativeSteps;
}

//Запрос истории шагомера
var history = await Pedometer.GetSystemHistoryAsync(yesterday);

Более подробная информация про API работы с шагомером приведена в MSDN, а готовый пример кода доступен в коллекции примеров.

Барометр и сенсор высоты

Для работы с информацией о давлении (данные от барометра) и относительной высотой (например, изменение при подъеме) мы добавили, соответственно, API барометра и высоты.

Типичные сценарии:

  • Здоровье и фитнес: зная относительную высоту, вы можете понять, движется ли пользователь вверх или вниз и учитывать это при подсчете затрат калорий
  • Определять, на какой этаже находится пользователь при навигации в помещении
  • Предсказание погоды

Пример работы с API:

Barometer barometer = Barometer.GetDefault();
BarometerReading reading = barometer.GetCurrentReading();

double pressure = reading.StationPressureInHectopascals;
barometer.ReadingChanged += ...

Altimeter altimeter = Altimeter.GetDefault();
AltimeterReading altimeterReading = altimeter.GetCurrentReading();

double altitudeChange = altimeterReading.AltitudeChangeInMeters;
altimeter.ReadingChanged += ...

//Выбор интервала для данных
mySensor.ReportInterval = 500;


Дополнительные сведения:


Определение присутствия

Мы теперь также поддерживаем API для определения присутствия с близким и дальними радиусами действия. Сенсоры близкого действия работают на расстоянии 2-3см, в дальнего – могут определять присутствие на расстоянии вплоть до 12 метров.

Практические сценарии:

  • Активация устройства при приближении пользователя или выключение, когда пользователь удаляется. Например, Surface Hub использует данные API, чтобы просыпаться, когда человек входит в комнату для переговоров, и выключаться, когда все люди вышли.
  • Автоматически выключать экран во время звонка
  • Определять и игнорировать случайные нажатия, когда становится понятно, что устройство находится в кармане пользователя
  • Определение жестов

Пример работы с API близости приведен ниже:

using Windows.Devices.Sensors;

//Получение текущих данных
ProximitySensorReading reading = sensor.GetCurrentReading();
bool isDetected = reading.IsDetected;

//Подписка на изменения
sensor.ReadingChanged += ReadingChanged;
void ReadingChanged(ProximitySensor s, ProximitySensorReadingChangedEventArgs e)
{
    ProximitySensorReading reading = e.Reading;
    bool isDetected = reading.isDetected
}

//Интервал для данных
mySensor.ReportInterval = 500;

Подробнее с документацией по API близости можно познакомиться в MSDN, и не забудьте про готовый пример.

Автор: Константин Кичинский  •  Иcточник: msdn.microsoft.com  •  Опубликована: 13.01.2016
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:   Windows 10.


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.