我正在编写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。
有什么想法吗?任何帮助表示赞赏!
答案 0 :(得分:1)
根据最受欢迎的方法,您应该添加参考
C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0\Windows.winmd
和C:\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.winmd
和
C:\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
我不知道这是否是解决此问题的正确方法,但它应该有效。