我在尝试在我创建的 Windows Phone 应用程序中查找我的 Bluetooth Smart 心率监测器时遇到问题。首先,我使用 MSDN 中的示例应用程序,该应用程序演示了蓝牙通用属性配置文件 (Gatt) Windows 运行时 API 的使用。这是可用于 WP 8.1 的新 API。
以下代码段是发现心率监测器的地方:
var devices = await DeviceInformation.FindAllAsync(
GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.HeartRate),
new string[] { "System.Devices.ContainerId" });
在我的手机上调试后,发现的设备始终为零。经过一些研究,我认为这是因为 DeviceInformation.FindAllAsync 方法仅返回已使用系统设置在手机上配对的设备。我无法在蓝牙系统设置中配对我的心率监测器,因为它找不到。我已经在我的 PC 上对其进行了测试,它可以找到心率监测器,但是当我尝试配对时它总是失败。
需要注意的一件事是,我可以将我的心率监测器与 Adidas miCoach 应用程序一起使用(不需要通过系统设置进行配对)。发现和连接直接在应用程序中进行。有谁知道这是如何工作的?
我的硬件:
- Wahoo Tickr 心率监测器
- Lumia 925(操作系统版本:8.10.12397.895)
资源:
- MSDN Sample - Bluetooth Generic Attribute Profile - Heart Rate Service
- Channel9 - Apps for Bluetooth Smart Devices
2014-07-23 更新: 我正在运行 Lumia Cyan 更新,Tickr 心率监测器现在显示在蓝牙系统设置中,但我无法配对它。我收到错误消息“无法连接”。这与 PC 上的行为相同。有趣的是,我无法再将 Tickr 心率监测器连接到 miCoach 应用程序。他们似乎更新了应用程序,配置心率监测器的页面也发生了变化。
最佳答案
您需要 Windows Phone 8.1 和 Nokia Cyan 更新,否则您将无法与 HRM 配对。为了进行测试,您可以使用 Cyan 附带的 HTC 手机或 630。
手机本身显然支持BLE心率监测器,但访问监测器的API是私有(private)的。这就是为什么 micoach/Sports Tracker 可以访问它,但您的应用程序(使用官方 8.1 API)在 Cyan 之前不能。
关于c# - Windows Phone 8.1 连接到蓝牙智能心率监测器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24621717/