我想在UWP应用程序中尝试Windows 10中的新蓝牙LE GATT API,但我找不到文档提到的新API。
我正在查看这里的文档: https://docs.microsoft.com/en-us/windows/uwp/devices-sensors/gatt-server
Guid myGuid = Guid.Parse("34B1CF4D-1069-4AD6-89B6-E161D79BE4D0");
GattUuid uuid = GattUuid.FromUuid(myGuid);
...
GattServiceProviderResult result = await GattServiceProvider.CreateAsync(
GattUuid.FromUuid(uuid),
GattServiceType.Primary);
if (result.Error == BluetoothError.Success)
{
serviceProvider = result.ServiceProvider;
//
}
...
_readCharacteristic = await serviceProvider.CreateCharacteristicAsync(
GattUuid.FromUuid(uuid1),
ReadParameters
);
我找不到GattUuid类,GattServiceProvider中与参数GattServiceProvider.CreateAsync匹配的任何方法(GattUuid.FromUuid(uuid),GattServiceType.Primary);或CreateCharacteristicAsync方法。
我正在使用Visual Studio Professional 2017版本15.1(26403.3), 我安装了Windows 10 SDK(10.0.15063.0), 我创建了一个空白的UWP应用程序,其目标版本和最小版本设置为Windows 10 Creators Update(10.0; Build 15063)
答案 0 :(得分:0)
您可以使用
GattServiceProviderResult result = await GattServiceProvider.CreateAsync(
GattServiceUuids.SomeEnumValueDontCopyPaste);
或
GattServiceProviderResult result = await GattServiceProvider.CreateAsync(
Guid.Parse(someGuid));
使用
创建一个特征await serviceProvider.Service.CreateCharacteristicAsync(
GattCharacteristicUuids.SomeEnumValueDontCopyPaste, parameters);
或与其他Guid
。
如果您想使用GattLocalCharacteristicParameters
,如果您想设置固定值,则应该StaticValue
而不是Value
。
GattServiceProviderAdvertisingParameters
包含属性IsConnectable
和IsDiscoverable
更新:在反馈之后,Microsoft更新了其文档。请看看。
答案 1 :(得分:0)
需要更新文档,因为该类已被删除。
GattServiceProvider.CreateAsync现在只需要一个GUID,并且有一个BluetoothUudHelpers.FromShortId可以将UINT16 uuid转换为128位UUID。
@ wind-rider打开了一个问题here。
您可以使用此代码段:
Guid myGuid = Guid.Parse("34B1CF4D-1069-4AD6-89B6-E161D79BE4D0");
GattServiceProviderResult result = await GattServiceProvider.CreateAsync(myGuid);
if (result.Error == BluetoothError.Success)
{
serviceProvider = result.ServiceProvider;
}
_readCharacteristic = await serviceProvider.Service.CreateCharacteristicAsync(uuid1, ReadParameters);