因项目中存在windows系统下低功耗蓝牙控制的需求,所以近期一直在进行各种尝试。 因为微软主推的uwp平台支持低功耗蓝牙控制,并且在github上开源了低功耗蓝牙的控制样例。
github上 uwp示例库地址:
https://github.com/microsoft/Windows-universal-samples
低功耗蓝牙(ble)的具体地址:
https://github.com/microsoft/Windows-universal-samples/tree/master/Samples/BluetoothLE
对于ble的设备控制,使用微软的样例,可以实现 uwp的控制程序。 但是这个程序迁移到 wpf下,还是有点麻烦的。 经过不懈的搜索和尝试,最终找到了迁移的关键:
即通过添加对以下三项的引用,之后将uwp的代码 进行调整,使其在wpf项目里运行
关键操作如下:
安装 Windows 10 SDK.
然后添加三个引用:
Windows
Windows.Foundation.FoundationContract
WindowsBase
可能的位置提示:
然后在属性中将“复制本地”设置为“true”.
可能的位置提示:
D:\Windows Kits\10\UnionMetadata\10.0.17763.0\Windows.winmd
D:\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\WindowsBase.dll```
以下是我的系统版本:
另外,我用于测试的wpf程序选择的framework版本是4.7.2
2020-08-11 补充:
为了在wpf程序中正常运行,还需添加对以下包的引用【注意:手动添加】:
System.Runtime
System.Runtime.WindowsRuntime
通过Nuget添加即可。
从测试情况看, wpf项目的framework版本选择成4.6运行也是正常的。