无法将 Hololens 连接到低功耗蓝牙设备

Can't connect the Hololens to a Bluetooth Low Energy device

对于我正在进行的项目,我需要从 BluetoothLE 模块 (HM-10) 读取数据。我需要从 Unity 应用程序读取和使用这些数据。为了连接和读取数据,我正在使用 Visual Studio 2017 为 Unity 构建一个插件。我可以使用以下方法获取 BluetoothLE 设备列表:

 string[] requestedProperties = { "System.Devices.Aep.DeviceAddress", "System.Devices.Aep.IsConnected" };

        deviceWatcher =
                    DeviceInformation.CreateWatcher(
                            BluetoothLEDevice.GetDeviceSelectorFromPairingState(false),
                            requestedProperties,
                            DeviceInformationKind.AssociationEndpoint);

连接到设备似乎也能正常工作。我使用:

  BluetoothLEDevice btDevice = await BluetoothLEDevice.FromIdAsync(device.Id);

接下来,我要读取此设备正在发送的数据。我知道我需要先收集服务和特征,然后才能读取这些数据。但出于某种原因,我无法等待服务。我使用这个时出错:var gattservices = await btDevice.GetGattServicesAsync(); 错误内容为:

Unable to cast object of type 'Windows.Devices.Bluetooth.BluetoothLEDevice' to type 'Windows.Devices.Bluetooth.IBluetoothLEDevice3'

我是不是使用了错误的方法来获得结果?

任何帮助将不胜感激!

我终于找到了如何获取所有服务和每个服务的特征。通过创建 GattDevice,我可以获得 GattDevice.GattServices 的服务。 当我找到正确的 GattDeviceService 时,我可以通过以下方式获得特征:

GattService s = new GattService(GattDeviceService)
GattCharacteristic.GetCharacteristics(s)