Я привел пример кода, как использовать метод «PairAsync» и обработчик события для события «PairingRequested».
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
{
}
}