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 服务的特征中的特征。
如果你让我知道任何想法或建议,我真的很感激。
谢谢。
首先,抱歉我的英语不好。我正在研究 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 服务的特征中的特征。
如果你让我知道任何想法或建议,我真的很感激。
谢谢。