Windows sensor and location

Using a sensor in Windows 7

Support for Windows 7 ended on January 14, 2020

We recommend you move to a Windows 10 PC to continue to receive security updates from Microsoft.

What is a sensor?

Sensors are hardware components that can provide your computer with information about your computer’s location, surroundings, and more. Programs on your computer can access information from sensors, and then store or use it to help you with everyday tasks or to improve your computer experience. There are two types of sensors:

Sensors that are built in to your computer

Sensors that are connected to your computer by a wired or wireless connection

Some examples of sensors include a location sensor, such as a GPS receiver, that can detect your computer’s current location. A program could then use that location to provide you with information about nearby restaurants or driving directions to your next destination. A light sensor installed on your computer could detect the light in your surroundings, and then adjust the screen brightness to match it.

Using location and other sensors

By using sensors, programs on your computer can customize information and services for you based on your computer’s current location, surroundings, and more. For example, with a location sensor and your computer, you may be able to find a nearby restaurant, get directions to that restaurant, send the directions to a friend, and then follow the directions on a map as you travel to your destination.

Programs can access information from a sensor once it’s installed and enabled on your computer. Programs can then store or use that information to help you with everyday tasks or to improve your computer experience. To help prevent all programs and user accounts from accessing information from a sensor, you can disable the sensor.

Because some programs may send personal information over network connections, you can enable or disable a sensor only when you are logged on to Windows with an administrator account.

You may want to limit access to personal information about certain users on your computer.

How does a sensor affect my privacy?

By default, when a sensor is enabled, all programs and users on your computer can access the information from that sensor. Windows notifies you when programs access information about your location by temporarily displaying the Location and Other Sensors icon in the notification area. Windows displays this icon the first time a program or a service accesses your computer’s location from a sensor.

Some programs could potentially use personal information (such as your location) from sensors without permission. You can limit programs from accessing information from sensors by user account.

Change who can access information from a sensor

You might want to limit programs or services (which run in the background for all user accounts) from accessing information from sensors. By default, when you first enable a sensor, all programs and services can access information from the sensor for all user accounts. You can choose to limit programs from accessing information from sensors by user account. You can also choose to limit services from accessing information from sensors, but this will apply to all user accounts.

Open Location and Other Sensors by clicking the Start button , and then clicking Control Panel. In the search box, type sensors, and then click Location and Other Sensors.

Note: You must have at least one sensor installed before you can change user settings for sensors.

In the left pane, click Change user settings.

Under Sensor, from the list, click the sensor that you want to change user settings for.

Читайте также:  Как установить linux elementary os рядом с windows

Under Access, select the check box next to each user name to provide access, or clear the check box next to each user name to remove access, and then click OK. If you’re prompted for an administrator password or confirmation, type the password or provide confirmation.

Enable or disable a sensor

Programs can use information from a sensor after it’s enabled. You can enable or disable sensors that are installed on your computer in Location and Other Sensors in Control Panel. Disabling a sensor doesn’t turn it off. Some programs may still access information from a sensor when it’s disabled.

Once a sensor is enabled, by default, all users and programs on your computer can access information from it. The first time a program or a service accesses your computer’s location from a sensor, Windows will temporarily display the Location and Other Sensors icon in the notification area.

To enable or disable a sensor

Open Location and Other Sensors by clicking the Start button , and then clicking Control Panel. In the search box, type sensors, and then click Location and Other Sensors.

Select the check box next to the sensor that you want to enable, or clear the check box to disable the sensor, and then click Apply. If you’re prompted for an administrator password or confirmation, type the password or provide confirmation.

Install or uninstall a sensor

Check the information that came with your sensor or go to the sensor manufacturer’s website. After you’ve installed a sensor, you must enable it. This allows programs to access information from the sensor.

To uninstall a sensor

Open Location and Other Sensors by clicking the Start button , and then clicking Control Panel. In the search box, type sensor s, and then click Location and Other Sensors.

Click the sensor that you want to uninstall.

Under More options, click Uninstall this sensor, and then click OK. If you’re prompted for an administrator password or confirmation, type the password or provide confirmation.

Sergey Zwezdin

Одна из составных частей Windows 7 – Sensor and Location platform. Sensor and Location – это часть Windows 7, которая позволяет организовать работу с различными датчиками и дополнительными устройствами для измерения чего-либо.

Зачем это нужно? Датчики нужны для того, чтобы упросить некоторые тривиальные действия и избавить нас от лишних забот в работе. Особенно актуально это для владельцев ноутбуков, чья жизнь является очень динамичной. Представьте себе, что в компьютер встроен датчик освещения, который доступен для всех приложений и дает возможность этим приложениям корректировать свою картинку в зависимости от освещения. Другим примером может являться датчик GPS-координат. В этом случае приложения могут подстраиваться под ту местность, где вы в данный момент находитесь. Например, приложения могут отображать информацию о погоде именно для того города, где вы находитесь. На самом деле примеров можно привести большое количество, все зависит от фантазии и конкретных случаев. Приложения, которые изменяют свое поведение в зависимости от внешних условий выделяются в отдельный класс приложений и называются контекстно-зависимыми приложениями.

Может возникнуть вопрос – “а что, собственно, изменилось?”, “почему этого нельзя было сделать раньше?”. Ответ прост – ранее эти сценарии также можно было реализовать. Но сделать это было не так просто. Фактически, работа с внешними датчиками сводилась к обмену информацией через COM-порт и каждый датчик имел свой специфический API. По этой причине было очень тяжело организовать какой-то универсальный программный интерфейс, с которым можно было работать одновременно из нескольких приложений и этот процесс был бы прозрачен.

Именно эту проблему решает библиотека Sensor and Location. С ее помощью можно обращаться к различными датчикам и получать от них информацию в едином для всех стилей. Важно, что эта проблема решается на уровне операционной системы. Такой шаг может дать новый толчок для развития контекстно-зависимых приложений. Далее приведена диаграмма, отображающая структуру объектов для работы с датчиками. В следующих частях мы рассмотрим это подробнее.

Для подключения датчика к Sensor and Location platform в Windows 7 необходимо реализовать для него драйвер и несложные классы-обертки на .NET для работы с этим датчиком.

Читайте также:  Sublime text emmet windows

Безусловно, в ближайшее время конечные пользователи вряд ли смогут в полной мере ощутить мощь всей этой платформы. Для этого потребуется некоторое время, чтобы разработчики аппаратного обеспечения могли разработать и встроить свои датчики в аппаратные платформы. Однако, нам, разработчикам, можно начинать готовиться к этому уже сегодня. Поэтому далее я планирую рассказать о том, каким образом работать с Sensor and Location platform в контексте наших бизнес-приложений.

Определение местоположения в Windows 7 при помощи продукции u-blox

ПК, снабженные чипом u-blox AMY-5M или их картами-приемниками PCI-5S/PCM-5S с Windows 7 теперь всегда будут знать о местоположении благодаря новому драйверу u-blox для Windows 7, доступному для скачивания отсюда.

Чип u-blox GPS встроен в USB-адаптер Microsoft GPS, который поставляется вместе с программным продуктом Streets and Trips 2009. Я заполучил такой чип и решил попытаться добавить моему ноутбуку под управлением Windows 7 возможность определения местонахождения.

Я подключил адаптер, установил драйвер u-blox для Windows 7 и GPS-адаптер появился в Windows 7 в качестве сенсора. Я, разумеется, включил сенсор u-blox GPS (или сенсор местоположения).

Windows 7 использует осведомленность о местоположении различными способами. Один из них — встроенный гаджет погоды.

Если у пользователя в Windows 7 включен сенсор местоположения, в настройках гаджета может быть отмечено «Определять местонахождение автоматически». Если эта функция включена, то гаджет погоды использует Sensor and Location Platform для обнаружения вашего местоположения и вывода погоды в вашем местоположении. В моем случае, он узнал о моем местоположении благодаря сенсору u-blox GPS, который я подключил. При перемещении вашего ноутбука гаджет погоды будет соответствовать вашему текущему местоположению.

Если у вас есть Streets and Trips 2009 и адаптер Microsoft GPS, который идет в его составе, используйте его, чтобы уведомить Windows 7 о вашем местоположении.

Поскольку все больше ноутбуков поставляется со встроенными GPS, Windows 7 спроектирован таким образом, чтобы получать все преимущества от местоположения прямо в ОС. Это очень удобно для людей, постоянно находящихся в разъездах.

Щелкните здесь, чтобы узнать больше о Windows Sensor and Location Platform. Если вы разработчик, узнайте о том, как определить местонахождение в вашем приложении в Windows 7 при помощи ресурсов о Windows Sensor and Location Platform, доступных здесь.

Sergey Zwezdin

Недавно я писал о том, что такое Sensor and Location platform в Windows 7 и зачем она нужна. Сейчас мы поговорим о том, каким образом эту платформу можно использовать в своих приложениях.

Для того, чтобы проводить эксперименты не с виртуальными датчиками, а с чем-то более-менее приближенным к реальности, мы будем использовать устройство от Freescale semiconductor, построенное на базе микроконтроллера JMBADGE2008-B . Это устройство представляет собой небольшую плату, на которой также есть несколько датчиков – акселерометр, датчик света и кнопки.

Это устройство разработано специально для демонстрации возможностей Sensor and Location platform в Windows 7. Фактически, каждый может купить его. Таким образом, это устройство хорошо подходит для того, чтобы продемонстировать эту возможность Windows 7.

Прежде чем рассматривать конкретные приложения, давайте посмотрим на то, как устроена платформа Sensor and Location. До появления Windows 7 и Sensor&Location platform подключение различных датчиков сводилось к реализации драйвера и программного обеспечения к нему.

При такой организации задачи взаимодействия с внешними датчиками можно, но тяжело. Для этого каждое приложение должно взаимодействовать с тем API, которое предложит разработчик датчика и программного обеспечения, которое обслуживает этот датчик. Проблема встает особенно остро в случае, если приложение должно использовать множество однотипных датчиков от разных производителей. Как эту проблему предлагает решить Sensor&Location platform?

На уровне операционной системы присутствуют механизмы работы с датчиками. Существует стандартный унифицированный программный интерфейс для работы с датчиками – Sensor API. При этом все взаимодействия с датчиком происходят именно через Sensor API. Важно, что взаимодействия со всеми датчиками происходит в едином стиле. Теперь вам не нужно интегрироваться с native API через p/invoke .

Для того, чтобы работать с Sensor and Location API необходимо загрузить соответствующую библиотеку .NET Interop Sample Library. В ней существуют .NET-обертки для работы с Sensor API. В нем существует несколько классов, при помощи которых можно работать с датчиками.

Читайте также:  Как запустить windows wine

Класс SensorManager является точкой входа. Через него можно получить информацию о сенсорах, а также поработать с ними. Например, при помощи метода GetSensorBySensorId<> можно получить доступ к интересующему нас датчику. Каждый датчик должен иметь класс-обертку, который наследуется от базового класса Sensor . В .NET Interop Sample Library уже существуют три таких реализации – AmbientLightSensor , Accelerometer3D , UnknownSensor .

Основная идея при работе с датчиками заключается в следующем. При изменении состояния датчика (подключен/отключен/активен/итд) генерируется событие StateChanged . Это событие необходимо для начала или прекращения работы с датчиками. После того, как связь с датчиком налажена, при получении новых данных генерируется событие DataReportChanged . Насколько часто будет генерироваться это событие зависит от реализации датчика и драйвера к нему. При обработке этого события можно считать состояние датчиков и каким-то образом изменить работу приложения. Для этих целей используется метод GetProperty . В параметрах этого метода передается идентификатор свойства, которое нужно считать от датчика. Как правило, детали вызовов этого метода скрываются в классах, которые реализуются для специфичного датчика.

Кроме того, каждый датчик имеет собственный идентификатор ( GUID ), по которому можно идентифицировать устройство. При реализации класса-обертки для датчика этот ID указывается при помощи атрибута. Таким образом, доступ к датчику можно получить как явно указав идентификатор этого датчика, так и сославшись на этот класс-обертку.

Давайте попробуем реализовать несколько примеров работы с датчиками, которые доступны в устройстве от Freescale. Мы будем работать с двуми типами датчиков – акселерометром (позволяет измерять угол наклона устройства) и датчиком света (измеряет уровень освещенности в помещении).

Первое приложение, которое мы реализуем будет отображать уровень освещенности в виде горящей лампочки на форме. Для начала подпишемся на событие изменения состояния в Sensor API. Это необходимо для того, чтобы приложение начало работать, если датчик подключен на ходу. В обработчике этого события мы получим список всех датчиков нужного типа и подпишемся у них на событие DataReportChanged . В обработчике этого события мы будем считывать значение с датчика освещенности и записывать его в TextBox на форме. Т.к. событие генерируется в дополнительном потоке, также потребуется сделать вызов метода Dispatcher.Invoke , чтобы обработка шла в основном потоке и мы могли взаимодействовать с элементами на форме. Таким образом получим следующий код.

Теперь в TextBox на форме выводится текущее значение освещенности. Теперь нетрудно реализовать какую-то визуализацию для этого. При помощи привязок в WPF будем отображать степень освещенности в виде лампочек. В итоге получим следующее приложение.

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

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

Что интересно, эти датчики могут использовать несколько приложений одновременно. Также в одном приложении можно использовать несколько датчиков. Давайте совместим приложение с вращением трехмерной модели с датчиком света. В этом случае кроме поворота модели будем показывать солнце. Если освещенность в помещении снижается, то и солнце будет скрываться. Чем больше освещения в помещении, тем солнце будет светить интенсивнее. Соответственно в этом приложении используется код из двух предыдущих примерах. Поэтому я не буду приводить код, а сразу покажу результат.

На этих примерах хорошо видно, что работа с датчиками в Windows 7 является очень простой. Однако, для этого необходимо иметь драйвер для Windows 7 и класс-обертку для Sensor&Location platform. Как правило, драйвера поставляются самим производителем аппаратной платформы, а вот класс-обертку можно реализовать самостоятельно. В следующий раз мы поговорим как раз на эту тему.

Оцените статью