【问题标题】:Failed to subscribe to notification characteristic in bluetooth low energy蓝牙低功耗下订阅通知特性失败
【发布时间】:2018-08-05 00:16:12
【问题描述】:

在我的 UWP 应用程序中,我想连接到蓝牙低功耗外围设备并订阅其通知特性。 这是应用程序Connect 方法:

private async Task Connect(string id)
{
    var device = await BluetoothLEDevice.FromIdAsync(id);
    var gattService = (await device.GetGattServicesForUuidAsync(Guid.Parse("00002600-005d-0012-00ef-00000000717f"))).Services.FirstOrDefault();
    if (gattService != null)
    {
        var notificationCharacteristic = (await gattService.GetCharacteristicsForUuidAsync(Guid.Parse("00009e76-0c4d-0db6-08b6-000000020445"))).Characteristics.FirstOrDefault();
        if (notificationCharacteristic.CharacteristicProperties.HasFlag(GattCharacteristicProperties.Notify))
        {
            try
            {
                var result = await notificationCharacteristic.WriteClientCharacteristicConfigurationDescriptorAsync(GattClientCharacteristicConfigurationDescriptorValue.Notify);
            }
            catch (Exception ex)
            {

            }
        }
    }
}

问题是当我尝试写入通知特征时,WriteClientCharacteristicConfigurationDescriptorAsync 方法引发异常:

无法写入属性。 (HRESULT 异常:0x80650003)

我使用 android 应用程序测试了这个场景,我可以毫无问题地编写通知特性。 我想知道 UWP 有什么问题?

更新: 我从外围设备更改了通知特征描述符的UUID,看到问题解决了。

【问题讨论】:

  • 您是否成功编写了另一个通知特性,例如电池服务?
  • @NicoZhu-MSFT 我更新帖子,问题解决了
  • 无论如何,WriteClientCharacteristicConfigurationDescriptorAsync 不应该抛出异常,它应该只返回正确的结果。

标签: c# bluetooth uwp bluetooth-lowenergy


【解决方案1】:

我发现了问题,经过一番测试,我从外围设备更改了通知特征描述符的UUID,发现问题已经解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 2016-11-18
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多