无法为UWP找到新的蓝牙LE GATT API

时间:2017-04-13 06:35:59

标签: uwp bluetooth-lowenergy

我想在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)

2 个答案:

答案 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包含属性IsConnectableIsDiscoverable

更新:在反馈之后,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);