Accelerometer class

Applies to Windows and Windows Phone

Represents an accelerometer sensor.

This sensor returns G-force values with respect to the x, y, and z axes.


Public NotInheritable Class Accelerometer




The Accelerometer class has these types of members:


The Accelerometer class has these events.

ReadingChanged Occurs each time the accelerometer reports a new sensor reading.
Shaken Occurs when the accelerometer detects that the PC has been shaken.



The Accelerometer class has these methods. With C#, Visual Basic, and C++, it also inherits methods from the Object class.

GetCurrentReading Gets the current accelerometer reading.
GetDefault Returns the default accelerometer.



The Accelerometer class has these properties.

PropertyAccess typeDescription


Read-onlyGets the device identifier.


Read-onlyGets the minimum report interval supported by the accelerometer.


Read/writeGets or sets the current report interval for the accelerometer.



Applications use the methods in this class to determine whether the sensor reading has changed or the device has been shaken.

Applications use the properties in this class to retrieve and adjust the sensor report interval.

Sensor data is provided relative to the device's fixed sensor coordinate system, and is independent of display orientation. For applications that rely on sensor data for input control or to manipulate elements on the screen, the developer must take current display orientation into account and compensate the data appropriately. For more info about the sensor coordinate system, see Sensor data and display orientation.

The following example demonstrates how a Windows Store app built with XAML and C# uses the GetDefault method to establish a connection to an accelerometer. If no integrated accelerometer is found, the method will return a null value.

_accelerometer = Accelerometer.GetDefault();

The following example demonstrates how a Windows Store app built with XAML registers a ReadingChanged event handler.

private void ScenarioEnable(object sender, RoutedEventArgs e)
    if (_accelerometer != null)
        // Establish the report interval
        _accelerometer.ReportInterval = _desiredReportInterval;

        Window.Current.VisibilityChanged += new WindowVisibilityChangedEventHandler(VisibilityChanged);
        _accelerometer.ReadingChanged += new TypedEventHandler<Accelerometer, AccelerometerReadingChangedEventArgs>(ReadingChanged);

        ScenarioEnableButton.IsEnabled = false;
        ScenarioDisableButton.IsEnabled = true;
        rootPage.NotifyUser("No accelerometer found", NotifyType.StatusMessage);

The following example shows the ReadingChanged event handler.

async private void ReadingChanged(object sender, AccelerometerReadingChangedEventArgs e)
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        AccelerometerReading reading = e.Reading;
        ScenarioOutput_X.Text = String.Format("{0,5:0.00}", reading.AccelerationX);
        ScenarioOutput_Y.Text = String.Format("{0,5:0.00}", reading.AccelerationY);
        ScenarioOutput_Z.Text = String.Format("{0,5:0.00}", reading.AccelerationZ);


Minimum supported client

Windows 8 [Windows Store apps, desktop apps]

Minimum supported server

None supported [Windows Store apps, desktop apps]

Minimum supported phone

Windows Phone 8


Windows::Devices::Sensors [C++]



See also

Accelerometer Quickstart
Accelerometer Sample
Sensor data and display orientation



© 2015 Microsoft