Winforms 成对可编程器件
我将此设置作为发现我的BLE设备(rfduino)的一种方式。它起作用了。当我点击一个按钮时,它会在列表框上显示我的ble设备。但是,在配对过程中我需要帮助。我已经给出了如何使用“PairAsync”方法和“PairingRequested”事件的事件处理程序的示例代码Winforms 成对可编程器件,winforms,bluetooth-lowenergy,Winforms,Bluetooth Lowenergy,我将此设置作为发现我的BLE设备(rfduino)的一种方式。它起作用了。当我点击一个按钮时,它会在列表框上显示我的ble设备。但是,在配对过程中我需要帮助。我已经给出了如何使用“PairAsync”方法和“PairingRequested”事件的事件处理程序的示例代码 我给出了如何使用“PairAsync”方法和“PairingRequested”事件的事件处理程序的示例代码 var watcher = new BluetoothLEAdvertisementWatcher();
我给出了如何使用“PairAsync”方法和“PairingRequested”事件的事件处理程序的示例代码
var watcher = new BluetoothLEAdvertisementWatcher();
watcher.ScanningMode = BluetoothLEScanningMode.Active;
watcher.Received += OnAdvertisementReceived;
watcher.Start();
}
#region BLE
private void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher watcher, BluetoothLEAdvertisementReceivedEventArgs eventArgs)
{
if (items.Contains(eventArgs.Advertisement.LocalName) == false)
{
items.Add(eventArgs.Advertisement.LocalName);
}
}
public async Task Connect(BluetoothLEDevice leDevice, DevicePairingProtectionLevel pairingProtection)
{
try
{
if (leDevice != null)
{
DevicePairingKinds ceremoniesSelected = DevicePairingKinds.ConfirmOnly;
DeviceInformationCustomPairing customPairing = leDevice.DeviceInformation.Pairing.Custom;
customPairing.PairingRequested += CustomPairing_PairingRequested;
DevicePairingResult result = await customPairing.PairAsync(ceremoniesSelected, pairingProtection);
customPairing.PairingRequested -= CustomPairing_PairingRequested;
}
}
catch
{
}
}
private void CustomPairing_PairingRequested(DeviceInformationCustomPairing sender, DevicePairingRequestedEventArgs args)
{
try
{
string deviceID = args.DeviceInformation.Id;
switch (args.PairingKind)
{
case DevicePairingKinds.ConfirmOnly:
// Windows itself will pop the confirmation dialog as part of "consent" if this is running on Desktop or Mobile
// If this is an App for 'Windows IoT Core' where there is no Windows Consent UX, you may want to provide your own confirmation.
args.Accept();
Task.Factory.StartNew(new Action(async () =>
{
await Task.Delay(2000);
BluetoothLEDevice bleDevice = await BluetoothLEDevice.FromIdAsync(deviceID);
// Write your making connection related code here
}));
break;
}
}
catch
{
}
}