Uwp Как получить службу устройства человеческого интерфейса(HID) с устройства Bluetooth

#uwp #bluetooth-lowenergy #bluetooth-gatt

Вопрос:

Прежде всего, извините за мой плохой английский. Я изучаю BLUETOOTH в рамках UWP. Теперь я могу подключиться к своему устройству с низким энергопотреблением Bluetooth и получать услуги. А затем я хочу получить все характеристики с моего устройства Bluetooth(LE).

Я могу получить все характеристики сервиса, кроме характеристик устройства человеческого интерфейса(HID). Ниже приведен код получения характеристики( при изменении сервиса в событии combobox)

 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.

Я действительно понимаю ,если вы дадите мне знать о какой-либо идее или предложении.

Спасибо.

Комментарии:

1. Если ответ решил вашу проблему, пожалуйста, отметьте его как принятый

Ответ №1:

Я могу получить все характеристики сервиса, кроме характеристик устройства человеческого интерфейса(HID).

Пожалуйста, ознакомьтесь с документом здесь. В разделе «Поддержка служб RFCOMM Bluetooth» вы найдете часть Human Interface Device , которая не поддерживает, я боюсь, что вы не сможете получить характеристики скрытого устройства в ble, если вам нужна эта функция, пожалуйста, не стесняйтесь размещать свои требования в центре обратной связи Windows.