C# 为什么可以';我不能配对我的蓝牙设备吗?

C# 为什么可以';我不能配对我的蓝牙设备吗?,c#,winforms,bluetooth-lowenergy,C#,Winforms,Bluetooth Lowenergy,这是我的配对代码 var Name = listBox1.SelectedItem as BluetoothLEDeviceDisplay; DevicePairingResult result = await Name.DeviceInformation.Pairing.PairAsync(); updateUI("Paired."); 我设置了我的“名称”来发现我的设备 private void OnAdvertisementReceived(Blu

这是我的配对代码

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)时。我得到错误
“5\u 1为空”
。如何解决此问题?

我确信您不必将设备配对。 大多数(如果不是所有的话)Ble设备都不需要配对,除非您需要一个用于输入pin码的配对对话框

你的代码毫无意义。
BluetoothLEDeviceDisplay是一个单独的类,包含易于显示的对象和枚举, 在某些UWP示例中使用。
这不是你的设备
因此,作为选定项的名称将始终为空。
如果已将此类添加到项目中,请使用自定义配对:

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
        }
DeviceInformation customPairing customPairing=bleDeviceDisplay.DeviceInformation.Pairing.Custom;
DevicePairingKinds礼仪选中=DevicePairingKinds.None | DevicePairingKinds.ProvidePin;
DevicePairingProtectionLevel protectionLevel=DevicePairingProtectionLevel.None;
customPairing.PairingRequested+=新类型DevenHandler(customPairing\u PairingRequested);
DevicePairInResult结果=等待customPairing.PairAsync(已选择Ceremonie,
保护级别);
私有void CustomPairing\u pairing请求(设备信息CustomPairing发送方,设备PairingRequestedEventArgs)
{
//这是你的密码。
//windows至少需要一个“0”。
args.Accept(“000000”);//123456
}
我在Windows10创建者更新之前使用过这个,但之后就再也没有了。 请看我的Github示例,让您无需进行配对:

“5_1为null”
哪一行引发该异常?它只是以NullReferenceException结束,因为LocalName属性为null。很难猜为什么,但是考虑添加<代码>如果(name!= null){…}/<代码>以取得领先。