7 ratings
  • 1
  • 2
  • 3
  • 4
  • 5
5 star 3
4 star 0
3 star 4
2 star 0
1 star 0
Compatible with
  • Android
  • iOS
  • Windows

Microsoft Band SDK

Xamarin Inc

Extend the experience of your application to your users' wrists via a new dimension of interaction.

Microsoft Band SDK

The Microsoft Band SDK gives developers access to the sensors available on the band, as well as the ability to create and send notifications to tiles. Enhance and extend the experience of your applications to your customers' wrists.

Amazing App Experiences

Extend the experience of your application to your users' wrists via a new dimension of interaction. Create an app that can send UI content to the band, keeping users engaged when they're in motion. Your app can also receive data directly from the band sensors, giving your users more reasons to interact with it. Create a personalized, data-rich, custom experience and enhanced scenarios that will engage users in ways only possible with Microsoft Band.

Access Sensors

Use a range of sensors including heart rate, UV, accelerometer, gyroscope, and skin temperature, as well as fitness data, to design cutting-edge user experiences:

  • Accelerometer
    Provides X, Y, and Z acceleration in meters per second squared (m/s²) units.
  • Gyroscope
    Provides X, Y, and Z angular velocity in degrees per second (°/sec) units.
  • Distance
    Provides the total distance in centimeters, current speed in centimeters per second (cm/s), current pace in milliseconds per meter (ms/m), and the current pedometer mode (such as walking or running).
  • Heart Rate
    Provides the number of beats per minute, also indicates if the heart rate sensor is fully locked onto the wearer’s heart rate.
  • Pedometer
    Provides the total number of steps the wearer has taken.
  • Skin Temperature
    Provides the current skin temperature of the wearer in degrees Celsius.
  • UV
    Provides the current ultra violet radiation exposure intensity.
  • Device Contact
    Provides a way to let the developer know if someone is currently wearing the device.
  • Calories
    Provides the total number of calories the wearer has burned.
  • Altimeter (Microsoft Band 2 only)
    Provides current elevation data like total gain/loss, steps ascended/descended, flights ascended/descended, and elevation rate.
  • Ambient Light (Microsoft Band 2 only)
    Provides the current light intensity (illuminance) in lux (Lumes/m²).
  • Barometer (Microsoft Band 2 only)
    Provides the current raw air pressure in hPa (hectopascals) and raw temperature in degrees Celsius.
  • Galvanic Skin Response (GSR) (Microsoft Band 2 only)
    Provides the current skin resistance of the wearer in kohms.
  • RR Interval (Microsoft Band 2 only)
    Provides the interval in seconds between the last two continuous heart beats.

Create App Tiles

Keep users engaged and extend your app experience to Microsoft Band. Create tiles for the band that send glance-able data and notifications from your app to your users.

Tile Notifications

Each app tile is visually represented on the Start Strip by an icon, and when a new notification arrives, the icon is scaled down and a number badge appears on the tile. App notifications come in two flavors:

  • Dialogs
    Dialog notifications are popups meant to quickly display information to the user. Once the user dismisses the dialog, the information contained therein does not persist on the Band.
  • Messages
    Message notifications are sent and stored in a specific tile, and a tile can keep up to 8 messages at a time. Messages may display a dialog as well. Both notifications types contain a title text and a body text.

Custom Tile Pages

Custom tiles have application defined layouts and custom content, which includes multiple icons, buttons, text blocks, and barcodes. With custom tiles, developers can define unique experiences for their applications. The developers control exactly how many pages to show inside of a tile as well as the content of individual pages.

They can update the contents of a page that has been created using custom layout at any point, unlike messaging tiles where every new message results in the creation of a new page inside the tile. In addition, a developer can choose to add additional pages inside the tile. If the total number of pages goes past the maximum pages allowed inside the tile, the right most page is dropped out when a new page is added.

Tile Events

It is also possible to register for tile events. This allows a developer to know when the user has entered and exited their tile. In addition, they can receive events when a user taps on a button in one of their custom tiles.

Personalize Device

Monetize your app by offering users ways to customize the band. Change the color theme, or bring the Me Tile to life by changing the wallpaper.

Release Notes

Updated the native libraries:

  • iOS:
  • Android: 1.3.20217.2
  • Windows: 1.3.20420


  • New: The current day's values for the Altimeter, Calories, Distance, Pedometer and UV sensors
  • New: BandErrorType.TileIdInUseError


  • New: BandNSErrorCodes.UnsupportedPageElement
  • Removed: PageElement.Visible
  • New: Support for up to 20 tiles


  • New: A 5 Hz subscription to the GSR sensor
  • New: The current day's values for the Altimeter, Calories, Distance, Pedometer and UV sensors
  • New: Windows Phone 10 Universal Apps to handle tile events in the background
  • New: Support for up to 20 tiles

Past release notes: https://github.com/mattleibow/Microsoft-Band-SDK-Bindings/releases

Write a Review

6 reviews

Lloyd Tjelle rates this with
  • 1
  • 2
  • 3
  • 4
  • 5

It works well on Crossplatform/Xamarin forms under windows, but same code on iphone it hangs forever under:

var bandClient = await bandClientManager.ConnectAsync(bandInfo);

Probably same as Patrick Skelton writes. Hopefully a bug to be fixed pretty soon.

Posted on: May 25, 2016 / Version:
Patrick Skelton rates this with
  • 1
  • 2
  • 3
  • 4
  • 5

The SDK all looks nice, but I am finding the couple of lines of code that are supposed to be needed to connect to the Band work only intermittently. The most troubling problem is that ConnectAsync() simply never returns. Because this task does not take any kind of cancellation token or timeout, the whole app basically just hangs there forever, and I don't really see what I can do about it. Because the code is so simple, and because my own app is only just taking shape and doesn't really have anything else going on that could be interfering with the Band, this really does seem to be a bug somewhere in this package or deeper in the code that manages the bluetooth pairing.

Hopefully this is an isolated bug that will be fixed soon.

Posted on: April 6, 2016 / Version: 1.3.8
Tony Andrews rates this with
  • 1
  • 2
  • 3
  • 4
  • 5

On iOS, be careful about blocking in an event notification method if there's Band SDK activity on another thread. This is probably an issue in the native SDK rather than the wrapper component.

Posted on: October 25, 2015 / Version: 1.3.6
Bjarte Haram

In iOS, the sample does not work correctly. For example, this line fails to compile:

var pairedBands = await manager.AttachedClients;

AttachedClients returns an array, not something awaitable.

Posted on: April 30, 2015 / Version: 1.3.4
John Hardman

On Android, the DateTime provided when sending messages to the band seems to be ignored.

Posted on: April 29, 2015 / Version: 1.3.1
Benedikt Huebschen

error CS0117: Microsoft.Band.BandClientManager' does not contain a definition forSharedManager'

Posted on: March 28, 2015 / Version: 1.3.1