Lumia SensorCore SDK 1.2 Preview

Mt574023.SensorCore_SDK(en-us,WIN.10).png

Lumia SensorCore SDK is a collection of APIs that utilize data from different sensors, for example, accelerometer and GPS. SensorCore APIs can be used to track a user's physical activities and motion. The sensors run constantly in the background, collecting and preserving data for up to the past ten days. Even though they are constantly active, they run in a low power mode, consuming only a negligible amount of battery. Since the sensors provide access to a user's private data, data privacy is a critical part of the design. A user has options for controlling SensorCore SDK sensors and collected data through the Lumia motion data settings application.

SensorCore SDK 1.2 APIs are being deprecated

All SensorCore APIs are now being deprecated. The APIs will continue to work in existing devices, but it is not guaranteed that new devices would support SensorCore any more. Instead, you should look into Windows platform APIs for activity monitoring and step counting. They will replace SensorCore APIs and will be supported by upcoming devices. However, they will not be supported by the majority of existing devices. Therefore, as an intermediary solution, you might want to use both APIs in your application. There is an SDK example application that demonstrates how this can be done. Unfortunately, Place Monitor and Track Point Monitor do not have equivalent OS APIs available as of yet.

We recommended that you start migrating existing apps to use Lumia SensorCore Step Counter or Activity Monitor APIs to the corresponding Windows platform APIs:

Windows.Devices.Sensors.Pedometer.aspx

Windows.Devices.Sensors.Activitysensor

See Migrating apps from using SensorCore APIs to using Win10 APIs for more details on how to migrate from using SensorCore SDK APIs to using OS APIs.

We recommend that you start removing support for Lumia SensorCore Place Monitor and TrackPoint Monitor APIs from existing apps.

We do not recommended that you use Lumia SensorCore APIs in any new apps.

Lumia SensorCore SDK 1.2 Preview

Mt574023.samples(en-us,WIN.10).jpg

The following features are included in the Lumia SensorCore SDK 1.2 Preview:

  • Step Counter counts the user's walking and running steps
  • Activity Monitor determines the current type of motion of the phone and the user
  • Place Monitor identifies the user's home, work, and visited places
  • Track Point Monitor records location points along the route the user has taken
  • Triggers for background tasks, for example, for recognizing changes in the step count, or if the user has changed essential settings (location or motion data) in the phone.

Key characteristics of SensorCore SDK

  • Power and memory efficient
  • Secure data storage on the phone
  • Access to motion history for up to ten days

This documentation provides an overview of each SensorCore SDK API, a Quick Start to get you started, and some advanced samples. Essential practices and Best practices sections offer guides on how to implement SensorCore SDK support in your application safely and how to handle the required hardware and privacy requirements. There is also a link to the full Lumia SensorCore API reference.

The SDK is delivered via the NuGet service. Instructions on how to add the libraries to your project in Visual Studio can be found in Quick Start.

What's new in SensorCore SDK 1.2 Preview?

All SensorCore SDK 1.1 functionality has been carried forward. Version 1.2 is a maintenance release to add support for Windows 10. In Windows 10, there are changes to how location privacy settings are being handled that may cause problems with applications built using previous versions of SensorCore SDK. There are some breaking changes in the SensorCore SDK 1.2 APIs, so you may need to refactor your applications somewhat to make them work.

The following table describes the new features and functionality in SensorCore SDK 1.2 Preview. Some of the new functionality will be available just by switching to the new SDK, but most of the new features are available for phones that have the Motion data settings application 2.0 and WP8.1 Update 2.

Lumia devices previous to WP 8.1 and Cyan software update do not support SensorCore.

Feature

SensorCore SDK 1.2

Lumia WP8.1 Update 2 Firmware

Motion Data Settings 2.0

Step Counter and Activity Monitor data is always available

With new motion data settings, app steps and activity data will always be available. This means that the user doesn't need to enable motion data for this data to get collected.

X

Motion data has two levels for data collection quality

With new motion data settings, app motion data can be set to two different modes: basic and detailed. Basic mode has negligible battery impact and is always available. Detailed mode consumes a little bit more battery, but collects much more accurate data for Place Monitor, Track Point Monitor, and Activity Monitor. The user must explicitly enable detailed mode.

X(1)

X

X

MovingInVehicle activity class

This is an extension to the Activity Monitor API. The API now offers a separate activity class for being inside a moving vehicle like a car or a bus. The MovingInVehicle activity class is available in both basic and detailed motion data modes, but will work more reliably in detailed mode.

X

X

X

Biking activity class

This is an extension to the Activity Monitor API. The API now offers a separate activity class for riding a bicycle. This activity class is only available when motion data is set to detailed mode.

X

X

X

Extensions to Place Monitor

There is now a new API for querying place history. Also, places now provide data on how many times place has been visited and how much time has been spend in the place.

X

X

X

New settings APIs

There is now a new API for querying the motion data settings (including data collection quality mode) and an API for querying the supported API set.

X

Improvements to simulators

It is now possible to load sensor recordings from a URL instead of having to include the recording in the application package.

X

Existing SensorCore SDK 1.0 apps that use TrackPoint Monitor will receive more accurate data if the consumer has changed the setting to detailed mode. In order for the app to query the setting and prompt the user, it must be implemented with SensorCore SDK 1.1.

API changes in SensorCore SDK 1.2 Preview

Windows 10 introduces changes to how location privacy settings are handled. Instead of displaying location consent prompt at application download time, the prompt is now displayed by the OS the first time a location-based API is called. Now, the user can also go to system settings to enable or disable location access for each application. None of the SensorCore APIs will be able to work unless the user has given location consent to the application. This includes getting SensorCore settings (SenseHelper.GetSettingsAsync()) and querying sensor availability (IsSupportedAsync()). If location access has been disabled for an application, calling SensorCore APIs will now throw an exception with an error code SenseError.LocationDisabled. You need to make sure that the exception is handled properly.

For more information, see the Migrating apps to SensorCore 1.2 SDK section. Applications compiled using an older version of the SDK will continue to work with some caveats: If the user has declined location consent for an application, it may not work properly or it may crash.