C#扫描蓝牙LE设备

时间:2016-07-13 18:08:26

标签: c#

我在Windows 10上使用C#查找Bluetooth Low Enegergy设备。当我运行以下代码时,我遇到了这样的错误:

  

“发生了'System.ArgumentOutOfRangeException'类型的异常   mscorlib.dll但未在用户代码“。

中处理

错误行是Debug.WriteLine("Found device: " + devices[0].Id);

我不知道为什么它超出了范围。谢谢!

   namespace BluetoothLE
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {

            public MainWindow()
            {
                InitializeComponent();
            }

            private async void LookForPairedDevices()
            {

                // Get BLE devices paired with Windows
                DeviceInformationCollection devices = await DeviceInformation.FindAllAsync(BluetoothLEDevice.GetDeviceSelector());

                Debug.WriteLine("Found device: " + devices[0].Id);


            }
        }

    }

1 个答案:

答案 0 :(得分:3)

您的错误就在这一行:

Debug.WriteLine("Found device: " + devices[0].Id);

如果您调试了代码,则会发现devices的长度为0,并且您尝试访问第一个属性id (它不存在)。

您可能需要考虑使用foreach循环来查看返回的内容:

foreach(var device in devices){
    Debug.WriteLine("Found device: " + device.Id);
}