2015-01-31 85 views
5

我正在尋找一種方法來與Adafruit bluefruit LE(nRF8001芯片組)板進行接口,在Windows桌面應用程序中使用c#(從我所看到的,我不能使用Windows.Devices名稱空間,而不會入侵它。)適用於Windows桌面的藍牙4.0(低能耗)API C#應用程序

該設備與我的平板電腦正確配對,似乎沒有問題,我只是在尋找一種方法從我的程序中接收數據。

必須有一種方法來做到這一點,我不認爲微軟會限制使用藍牙到metro應用程序,我只是無法找到它。

+0

找到一種方法來獲得對Windows.Devices命名空間的訪問權限,您必須執行此處所述的操作:http://stackoverflow.com/questions/12745703/how-can-i-use-the-windows-ui -namespace-from-a-regular-non-store-win32-net-app – Patrick 2015-01-31 21:20:26

+0

請參閱[此問題](http://stackoverflow.com/a/34548528/4163002)瞭解如何使用BLE或其他.NETCore Windows 10上的API。 – ZX9 2016-11-01 15:34:33

回答

5

所以,後人:

  1. 到處在網上說,把下面您的csproj文件:

    <的PropertyGroup > <TargetPlatformVersion> 8.0 </TargetPlatformVersion > < /的PropertyGroup >

這實際上是不正確的,如果你正在運行的Windows 8.1,你必須把8.1而不是8.0。此更改將允許您在引用對話框的windows - >核心部分中引用「Windows」程序集。把8.0放在那裏可以讓你得到一堆你不想要的東西。

  • 你也必須引用此DLL:
  • C:\程序文件(x86)\參考大會\微軟\ Framework.NETCore \ V4.5.1 \系統.Runtime.WindowsRuntime.dll

    其中包含允許您在Windows.Foundation.IAsyncOperation實例上使用常規等待調用的擴展方法。這是必需的,因爲這些實例不包含await關鍵字查找的GetAwaiter方法。

    之後,您應該可以在桌面應用程序中使用WinRT API。