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