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


Новые программы oszone.net Читать ленту новостей RSS
Программа для автоматической смены обоев на рабочем столе компьютера. BioniX Wallpaper предоставляет пользователю возмож...
Программа для запуска на одном компьютере нескольких виртуальных операционных систем. VirtualBox - это удобный и функцио...
AutoHotkey - программа позволяет создавать горячие клавиши. А также переназначить команды, которые вводятся с клавиатуры...
CheMax - очень большая база данных с кодами для игр. База CheMax является прямой наследницей базы программы ChEaTs, кото...
iCash – это программа, которая позволяет вам отслеживать все ваши доходы, расходы, кредиты, долги, а также банковские оп...
OSzone.net Microsoft Разработка приложений Windows 10 Сенсоры контекста в Windows 10 RSS

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

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

В 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.


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