这是我的配对代码。
var Name = listBox1.SelectedItem as BluetoothLEDeviceDisplay;
DevicePairingResult result = await Name.DeviceInformation.Pairing.PairAsync();
updateUI("Paired.");
我设置了我的"姓名"发现我的设备。
private void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher watcher, BluetoothLEAdvertisementReceivedEventArgs eventArgs)
{
Name = eventArgs.Advertisement.LocalName;
if (items.Contains(Name) == false)
{
items.Add(Name);
}
}
当我尝试配对BLE设备(rfduino)时。我收到错误"<Name>5_1 is null"
。我该如何解决这个问题?
答案 0 :(得分:0)
我相信您不必配对您的设备。 大多数(如果不是所有)Ble-devices都不需要配对,除非你想要一个用于输入pin-number的配对对话框。
你的代码毫无意义。
BluetoothLEDeviceDisplay是一个单独的类,包含对象和枚举,便于显示,
用于一些UWP示例。
它不是你的Ble-device!
因此,作为所选项目的名称将始终为空
如果您已将此类添加到项目中,请使用自定义配对:
DeviceInformationCustomPairing customPairing = bleDeviceDisplay.DeviceInformation.Pairing.Custom;
DevicePairingKinds ceremoniesSelected = DevicePairingKinds.None | DevicePairingKinds.ProvidePin;
DevicePairingProtectionLevel protectionLevel = DevicePairingProtectionLevel.None;
customPairing.PairingRequested += new TypedEventHandler<DeviceInformationCustomPairing,
DevicePairingRequestedEventArgs>(CustomPairing_PairingRequested);
DevicePairingResult result = await customPairing.PairAsync(ceremoniesSelected,
protectionLevel);
private void CustomPairing_PairingRequested(DeviceInformationCustomPairing sender, DevicePairingRequestedEventArgs args)
{
//this is where your pin goes.
//windows requires at least a "0".
args.Accept("000000");//123456
}
我在Windows 10创建者更新之前使用过这个,但之后再也没有了。 看看我的Github示例,让你无需配对: https://github.com/GrooverFromHolland/SimpleBleExample_by_Devicename