我为Windows Form编写了一个应用程序。我将设备与PC配对存在问题。现在该程序的工作方式如下:打开潜水,启动程序,添加转移到蓝牙设备,按下连接按钮。我使用下一个函数:
public BluetoothClient client = new BluetoothClient();
public string selectedItem { get; set; }
public BluetoothDeviceInfo[] AllDevices;
public void GetDevices()
{
AllDevices = client.DiscoverDevicesInRange();
foreach (BluetoothDeviceInfo Device in AllDevices)
{
if(Device.DeviceName.Contains("Kortes"))
onSetDevices(Device.DeviceName); // event to get device name and add it to ComoBox element on form
}
onSetProgress(); // event, that all devices were found, set progress bar and etc.
}
public void GoConnect()
{
foreach (BluetoothDeviceInfo Device in AllDevices)
{
if (Device.DeviceName.Equals(selectedItem)) // item from ComboBox
{
if (!client.Connected)
client = new BluetoothClient();
client.BeginConnect(Device.DeviceAddress, Device.InstalledServices[0], this.BluetoothClientConnectCallback, client);
break;
}
else
{
MessageBox.Show("Choose the device");
}
}
}
private void BluetoothClientConnectCallback(IAsyncResult ar)
{
//Have no problem with this
}
这些功能非常有效。我可以找到并连接所需的设备。但问题是首先我需要将我的设备添加到操作系统中的蓝牙设备并输入PIN码。如何改进我的代码来解决这个问题?
我不想添加设备。我想直接使用它。我可以使用哪种方法以编程方式输入PIN码?程序必须以下一种方式工作:打开设备,启动程序,然后按下连接按钮。
答案 0 :(得分:3)
您正在尝试连接而不进行配对。您的代码无效,因为您必须在连接前配对。
替换
client = new BluetoothClient();
client.BeginConnect(Device.DeviceAddress, Device.InstalledServices[0], this.BluetoothClientConnectCallback, client);
通过
BluetoothSecurity.PairRequest(Device.DeviceAddress,"123456");
查看http://mrbikash.com/bluetooth-discovery-pairing-32feet-net/#pairing以获取更详细的说明。 :d