c#:WPF中的BluetoothLe:找不到某些类/方法

时间:2017-09-06 11:21:19

标签: c# .net wpf bluetooth bluetooth-lowenergy

我正在编写WPF应用程序(而不是UWP),我需要让BluetoothLE运行。

我添加了蓝牙使用:

using Windows.Devices.Bluetooth;
using Windows.Devices.Bluetooth.GenericAttributeProfile;

我添加了对 C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETCore \ v4.5 \ System.Runtime.WindowsRuntime.dll 的引用 以及 C:\ Program Files(x86)\ Windows Kits \ 10 \ UnionMetadata \ Facade \ Windows.WinMD

但现在出现了两个错误:

 var gattServicesResult = await device.GetGattServicesForUuidAsync(new Guid(RX_SERVICE_UUID));

错误' BluetoothLedevice'不包含' GetGattServicesForUuidAsync'的定义[...](您是否缺少使用指令或汇编参考?)

GattWriteResult result =
                await characteristic.WriteClientCharacteristicConfigurationDescriptorWithResultAsync(GattClientCharacteristicConfigurationDescriptorValue.Notify);

给出错误类型或命名空间名称' GattWriteResult'找不到(你错过了使用指令或汇编引用吗?)

我也试过UwpDesktop。

有什么想法吗?任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

根据最受欢迎的方法,您应该添加参考 C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0\Windows.winmdC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll到您的项目。但是,如果采用这种方式,则会发现一些缺少的方法。 因此,与其添加 C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0\Windows.winmd,我们可以添加参考 C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Facade\Windows.WinMD
C:\Program Files (x86)\Windows Kits\10\References\10.0.17134.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmdC:\Program Files (x86)\Windows Kits\10\References\10.0.17134.0\Windows.Foundation.UniversalApiContract\6.0.0.0\Windows.Foundation.UniversalApiContract.winmd 到您的项目。这种方式有效,我在WPF项目中一直使用它,并且一切正常。

答案 1 :(得分:-1)

尝试添加对特定版本的引用,例如

  

C:\ Program Files(x86)\ Windows Kits \ 10 \ UnionMetadata \ 10.0.16299.0 \ Windows.winmd

我不知道这是否是解决此问题的正确方法,但它应该有效。