对于我正在进行的项目,我需要从BluetoothLE模块(HM-10)读取数据。我需要从Unity应用程序中读取和使用这些数据。要连接和读取数据,我正在使用Visual Studio 2017为Unity构建插件。我可以使用以下命令获取BluetoothLE设备列表:
Sprint2
连接到设备似乎也可以。我用:
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);
错误如下:
无法将“Windows.Devices.Bluetooth.BluetoothLEDevice”类型的对象转换为“Windows.Devices.Bluetooth.IBluetoothLEDevice3”
我使用错误的方法来获得结果吗?
任何帮助将不胜感激!
答案 0 :(得分:1)
我终于找到了如何获得所有服务和每项服务的特性。通过创建GattDevice,我可以使用GattDevice.GattServices
获取服务。
当我找到正确的GattDeviceService时,我可以获得特性:
GattService s = new GattService(GattDeviceService)
GattCharacteristic.GetCharacteristics(s)