CompassService

The ICompassService allows a developer to access the compass of a Windows Phone device.

Note that the Compass service is available as separate assembly to make sure Catel.MVVM does also work on older devices without a Compass

It is important that the service must be started and stopped to retrieve values

Check if the sensor is supported by the device

It is important to check whether the sensor is actually supported by the device. This can be done using the following code:

var dependencyResolver = this.GetDependencyResolver();
var compassService = dependencyResolver.Resolve<ICompassService>();
if (compassService.IsSupported)
{
    // Sensor is supported
}

Starting the service

When a service is started, the service will start raising the CurrentValueChanged event as soon as new values come in from the sensor. To start the service, use the following code:

var dependencyResolver = this.GetDependencyResolver();
var compassService = dependencyResolver.Resolve<ICompassService>();
compassService.CurrentValueChanged += OnCompassValueChanged;
compassService.Start();

Stopping the service

It is important to stop the service when it is no longer needed by the application. To stop the service, use the following code:

var dependencyResolver = this.GetDependencyResolver();
var compassService = dependencyResolver.Resolve<ICompassService>();
compassService.CurrentValueChanged -= OnCompassValueChanged;
compassService.Stop();