Demonstrates use of the Bluetooth Generic Attribute Profile (Gatt) Windows Runtime API to interact with a Bluetooth Gatt device, which contains a Heart Rate Service.

Note  This sample was created using one of the universal app templates available in Visual Studio. It shows how its solution is structured so it can run on both Windows 8.1 and Windows Phone 8.1. For more info about how to build apps that target Windows and Windows Phone with Visual Studio, see Build apps that target Windows and Windows Phone 8.1 by using Visual Studio.

Device capabilities

This sample requires that device capabilities be set in the Package.appxmanifest file to allow the app to access the Bluetooth generic attribute profile at runtime. Device capabilities can be set in the app manifest using Microsoft Visual Studio.

To build the sample, the following device capabilities are needed:

Name = "bluetooth.genericAttributeProfile"

Device Id = "any"

Function Type = "name:heartRate"

These capabilities are already set in the Package.appxmanifest file for this sample.

For more information, see How to specify device capabilities for Bluetooth (Windows Runtime apps).

Encryption is not required by all devices. If encryption is supported by the device, it can be enabled by setting the GattCharacteristic.ProtectionLevel property to EncryptionRequired. All subsequent operations on the characteristic will work over an encrypted link. The current sample enables encryption. If the device doesn't support encryption, then the app will fail.

You should disable encryption in the sample for devices that do not support encryption.

The following shows the code change needed in the heart-rate-service.js file.

    characteristic.protectionLevel = gatt.GattProtectionLevel.plain;

The following shows the code change needed in the HeartRateService.cs file.

    characteristic.ProtectionLevel = GattProtectionLevel.Plain;

The following shows the code change needed in the HeartRateService.cpp file.

    this->characteristic->ProtectionLevel = GattProtectionLevel::Plain;

To obtain an evaluation copy of Windows 8.1, go to Windows 8.1.

To obtain an evaluation copy of Microsoft Visual Studio 2013 Update 2, go to Microsoft Visual Studio 2013.

Note  For Windows 8 app samples, download the Windows 8 app samples pack. The samples in the Windows 8 app samples pack will build and run only on Microsoft Visual Studio 2012.

Note  This sample app is not a qualified Bluetooth product. Meeting necessary Bluetooth Qualification requirements, if any, are the responsibility of the app developer. Visit the Qualification Listing Process webpage to learn more.

Related topics

Windows.Devices.Bluetooth.GenericAttributeProfile
How to specify device capabilities for Bluetooth (Windows Runtime apps)
Windows app samples

Operating system requirements

Client
Windows 8.1
Server
None supported
Phone
Windows Phone 8.1

Build the sample

  1. Start Visual Studio 2013 Update 2 and select File > Open > Project/Solution.
  2. Go to the directory to which you unzipped the sample. Then go to the subdirectory named for the sample and double-click the Visual Studio 2013 Update 2 Solution (.sln) file.
  3. Follow the steps for the version of the sample you want:
    • To build the Windows version of the sample:

      1. Select BluetoothGattHeartRate.Windows in Solution Explorer.
      2. Press Ctrl+Shift+B, or use Build > Build Solution, or use Build > Build BluetoothGattHeartRate.Windows.
    • To build the Windows Phone version of the sample:

      1. Select BluetoothGattHeartRate.WindowsPhone in Solution Explorer.
      2. Press Ctrl+Shift+B or use Build > Build Solution or use Build > Build BluetoothGattHeartRate.WindowsPhone.

Run the sample

The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.

Deploying the sample

Deploying and running the sample