Uwp 如何从 BluetoothLEDevice 获取人机接口设备 (HID) 服务

Uwp How to get the Human Interface Device(HID) service from BluetoothLEDevice

首先,抱歉我的英语不好。我正在研究 UWP 下的 BluetoothLE。 现在,我可以与我的低功耗蓝牙设备配对并获得服务。 然后,我想从我的蓝牙 (LE) 设备获取所有特征。

我可以获得除人机接口设备 (HID) 特征之外的所有服务特征。 下面是获取特征的代码(在组合框事件中更改服务时)

private async void ServiceListCombo_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var service = (GattDeviceService)((ComboBoxItem)ServiceListCombo.SelectedItem)?.Tag;
            CharacteristicCombo.Items.Clear();

            IReadOnlyList<GattCharacteristic> characteristics = null;
            try
            {
                var accessStatus = await service.RequestAccessAsync();
                if(accessStatus == DeviceAccessStatus.Allowed)
                {
                    var result = await service.GetCharacteristicsAsync(BluetoothCacheMode.Uncached);
                    if(result.Status == GattCommunicationStatus.Success)
                    {
                        characteristics = result.Characteristics;
                    }
                    else
                    {
                        StatusTextBlock.Text = $"{result.Status.ToString()} // Failed";
                        characteristics = new List<GattCharacteristic>();
                    }
                }
                else
                {
                    StatusTextBlock.Text = $"{accessStatus.ToString()} // Failed2";
                    characteristics = new List<GattCharacteristic>();
                }
            }
            catch(Exception msg)
            {
                StatusTextBlock.Text = $"Exception : {msg.Message}";
                characteristics = new List<GattCharacteristic>();
            }
            foreach(GattCharacteristic c in characteristics)
            {
                CharacteristicCombo.Items.Add(new ComboBoxItem { Content = Helpers.GetCharacteristicName(c), Tag = c });
            }
            CharacteristicCombo.Visibility = Visibility.Visible;
        }

我可以看到除 HID 之外的所有特征(状态:系统拒绝访问)

所以我想知道的是,如何获取 HID 服务的特征中的特征。

如果你让我知道任何想法或建议,我真的很感激。

谢谢。

I can get all service's characteristics except Human Interface Device(HID)'s characteristics.

请查看文档here. At Support for Bluetooth RFCOMM services part你会发现Human Interface Device不支持,恐怕你无法在ble中获取隐藏设备特性,如果你想要这个功能,请感受通过 Windows 反馈中心免费 post 您的要求。