我需要Windows自动与蓝牙设备配对。 我不希望用户必须点击窗口上的任何东西。 服务器将在物理上位于用户无法到达的地方。 必须配对在用户方面是好的。 Windows只需要接受没有用户input的任何请求。
我怎样才能做到这一点? registry黑客? replace一个DLL? 硬件更换(自动encryption狗或什么的)?
有什么SDK会给我这个工具的照顾?
目前我在Microsoft堆栈上的Windows机器上使用bluecove。 我也尝试了Widcomm堆栈也没有运气。
设备将使用的主要协议是RFCOMM。
编辑:使用下面接受的答案,我想出了这个代码,自动配对
using System; using System.Collections.Generic; using System.Linq; using System.Text; using InTheHand.Net.Bluetooth; using System.Threading; namespace BT { class BluetoothAutoSSP { public static void Main() { BluetoothAutoSSP c = new BluetoothAutoSSP(); EventHandler<BluetoothWin32AuthenticationEventArgs> handler = new EventHandler<BluetoothWin32AuthenticationEventArgs>(c.handleRequests); BluetoothWin32Authentication authenticator = new BluetoothWin32Authentication(handler); while (true) { Thread.Sleep(10); } } public void handleRequests(Object thing, BluetoothWin32AuthenticationEventArgs args) { args.Confirm = true; } } }
对于Microsoft蓝牙堆栈:要同时支持传统蓝牙配对以及v2.1的安全简单配对,请使用BluetoothRegisterForAuthenticationEx
函数,并在您的回调函数中通过调用BluetoothSendAuthenticationResponseEx
响应。
有关详细信息,请参阅BluetoothWin32Authentication 32feet.NET文档 ,其中介绍了如何处理.NET中的32feet.NET蓝牙库,Windows 7中的蓝牙文档以及MSDN(如BluetoothRegisterForAuthenticationEx等)的处理方法。
顺便说一句,Widcomm没有一个程序化的方式来响应配对(它有一个启动配对的方法)。 BlueSoleil确实有一个API显然。