Mit dem Band 2 bietet Microsoft eine Smartwatch mit Fitnesstracker-Funktion an, die insgesamt 11 Sensoren besitzt. Über das Band SDK lassen sich alle Sensoren des Bands abfragen und individuell auswerten. Zudem können auf dem Band Tiles bereitgestellt werden, durch die Benachrichtigungen dargestellt oder Aktionen ausgeführt werden können. In diesem Artikel werden die Möglichkeiten und ersten Schritte mit dem Band SDK vorgestellt.

Das Band SDK ist für Windows, iOS und Android verfügbar. Der erste Anlaufpunkt, um mit der Entwicklung durchstarten zu können, ist die Band SDK Website (http://bit.ly/1JfiFvW). Dort gibt es neben vielen Beispielprojekten auch die offizielle Dokumentation zum SDK. In diesem Artikel beschränken wir uns auf die ersten Schritte mit dem SDK für die Windows Plattform.

Das Band SDK bietet folgende Möglichkeiten:

  • Zugriff auf Sensoren
  • Erstellen von Tiles, an die Benachrichtigungen gesendet werden können und die Aktionen ausführen können
  • Haptische Benachrichtigungen
  • Personalisierung des Bandes (Me Tile und Farbschema)

Anwendungen für das Microsoft Band laufen immer auf dem Host Betriebssystem (Windows, iPhone oder Android) und kommunizieren über das SDK mit dem Band. Die Kommunikation läuft immer nach dem gleichen Schema ab. In den nachfolgenden Abschnitten wird gezeigt, wie man aus einer Windows 10 App eine Verbindung mit dem Band herstellen kann und Daten von einem Sensor abfragen kann.

Verbindung zwischen dem Band und einem Windows 10 PC herstellen

Zuerst muss das Band mit dem PC über Bluetooth verbunden werden. Hierzu öffnet man im Band das Einstellungs-Tile, wählt dort das Bluetooth-Symbol aus und wählt als Modus „Wird gekoppelt“ aus. Auf die Nachfrage, ob das Band mit einem iPhone gekoppelt werden soll, wählt man Nein.

Auf dem Windows PC öffnet man die Bluetooth-Einstellungen und aktiviert Bluetooth. Das Band sollte dann in der Liste der kopplungsbereiten Bluetooth-Geräte auftauchen (hier Daniels Band 40:e6). Dort wählt man nun Koppeln aus (Erste Stolperfalle: Unter Umständen taucht auch ein Eintrag des Bands mit dem Zusatz LE auf, diesen nicht auswählen).

Kopplung mit dem Microsoft Band Kopplung mit dem Microsoft Band

Erscheint daraufhin eine Abfrage der Kennung, kann es sein, dass auf dem Band eine Kennungsnummer angezeigt wird. In diesem Fall ist die Zahlenkombination nun in das Feld einzutragen. Alternativ lässt man das Feld einfach leer. Die Verbindung sollte daraufhin hergestellt werden und der Status von Kopplungsbereit auf Verbunden wechseln.

Windows 10 App in Visual Studio erstellen

Im nächsten Schritt erstellen wir eine App in Visual Studio, um von dieser auf das Band zugreifen zu können. Wir verwenden als Vorlage eine Universelle Windows-App, die auf der gesamten Windows Plattform verwendet werden kann (Windows, Windows Phone, etc.). Dafür wird Visual Studio 2015 benötigt.

Auswahl der Projektvorlage in Visual Studio Auswahl der Projektvorlage in Visual Studio

Um eine Verbindung herstellen zu können, muss im Manifest die Funktion Bluetooth ausgewählt werden. Weitere Funktionen sind nicht notwendig.

Festlegen der benötigten Funktionen im App-Manifest Festlegen der benötigten Funktionen im App-Manifest

Zu guter Letzt muss noch das Band SDK installiert werden. Am einfachsten geht das über NuGet. Der Paketname hierfür lautet Microsoft.Band (http://bit.ly/1ZdBokM). Wurde das Paket installiert, ist für die Entwicklung alles vorbereitet.

Installation des SDKs über NuGet Installation des SDKs über NuGet

Verbindung zwischen App und Band herstellen, um Sensorwerte abzufragen

In diesem Abschnitt stellen wir die Verbindung zwischen App und Band her, um auf die Daten eines Sensors zuzugreifen. Beispielhaft verwenden wir dazu den Sensor zum Messen der Hauttemperatur.

Der Verbindungsaufbau zum Band läuft immer nach dem gleichen Schema ab. Hierzu wird die Klasse BandClientManager verwendet. Über die Methode GetBandsAsync holen wir uns eine Auflistung aller verfügbaren Geräte. Dadurch ist es möglich, gleichzeitig mehrere Bands mit dem PC verbunden zu haben. Über die Methode ConnectAsync kann dann die Verbindung zu einem der verfügbaren Bands hergestellt werden.

1
2
3
4
5
6
7
8
// Alle verfügbaren Bands abrufen
IBandInfo[] bands = await BandClientManager.Instance.GetBandsAsync();

// Zum ersten verfügbaren Band verbinden
IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(bands[0]);

// Vibration senden
await bandClient.NotificationManager.VibrateAsync(Microsoft.Band.Notifications.VibrationType.RampUp);

Das vom Verbindungsaufbau zurückgelieferte Objekt ist vom Typ IBandClient und bietet uns nun die Möglichkeit auf Band-Funktionen zugreifen zu können. Über den NotificationManager können wir beispielsweise bei erfolgreichem Verbindungsaufbau eine Vibration auf dem Band erzeugen.

Daten des Hauttemperatursensors lesen

Die Abfrage der Sensordaten erfolgt über Events, die vom Objekt SensorManager des BandClients geworfen werden. Hierzu muss man im ersten Schritt das ReadingChanged-Event des abzufragenden Sensors abonnieren. In der Ereignisbehandlung wird als Argument ein Objekt übergeben, das die aktuell gelesenen Werte enthält (hier args.SensorReading.Temperature als aktuelle Temperatur in °C).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if (!bandClient.SensorManager.SkinTemperature.IsSupported)
{
    // Sensor ist nicht unterstützt
    return;
}

// Event des Temperatursensors abonnieren
bandClient.SensorManager.SkinTemperature.ReadingChanged += (s, args) =>
{
    Debug.WriteLine(args.SensorReading.Temperature)
};

// Datenabfrage starten
await bandClient.SensorManager.SkinTemperature.StartReadingsAsync();

// Ein paar Sekunden warten und dann die Abfrage beenden
await Task.Delay(TimeSpan.FromSeconds(5));
await bandClient.SensorManager.SkinTemperature.StopReadingsAsync();

Jeder Sensor besitzt ein bestimmtes Intervall, in dem die Sensordaten abgefragt werden können. Dieses kann über die Eigenschaft ReportingInterval des jeweiligen Sensors festgelegt werden. Die möglichen Intervalle kann man über die Eigenschaft SupportedReportingIntervals abfragen oder in der SDK Dokumentation nachlesen.

Hat man die Ereignisbehandlung implementiert und das Intervall festgelegt, kann der Lesevorgang gestartet werden. Das erfolgt über die Methode StartReadingAsync des jeweiligen Sensors. Über die Methode StopReadingAsync wird der Lesevorgang wieder beendet. Bevor der Zugriff auf einen Sensor erfolgt, bietet es sich zudem an, über die Eigenschaft IsSupported zu überprüfen, ob der Sensor auf dem aktuellen Band verfügbar ist.

App starten

Wird die App das erste Mal gestartet und möchte auf das Band zugreifen, wird ein Dialog angezeigt, der Zugriff auf das Band anfordert. Wurde die Berechtigung erteilt und die Verbindung war erfolgreich, sollte das Band nun vibrieren. Daraufhin werden ein paar Temperaturwerte gelesen, in der Konsole ausgegeben und nach 5 Sekunden der Lesevorgang beendet.

Zugriffsanforderung der App Zugriffsanforderung der App

Zusammenfassung

In diesem Artikel wurde gezeigt, wie man mit dem Band SDK auf das Microsoft Band zugreifen kann, um Sensordaten abzufragen. Hierzu wurde das Band mit einem Windows 10 PC über Bluetooth verbunden und über eine Windows Universal App angebunden. Weitere Möglichkeiten des SDKs, wie die Erstellung von Tiles basieren auf dem gleichen Schema (Verbindungsaufbau über BandClientManager, Verwenden des IBandClient).

Beispielprojekt

Das Beispielprojekt ist hier auf GitHub zu finden.