C#扫描蓝牙设备

C#扫描蓝牙设备,c#,C#,我使用C#查找Windows 10上的蓝牙低能耗设备。当我运行以下代码时,我遇到了这样一个错误: 中发生了“System.ArgumentOutOfRangeException”类型的异常 mscorlib.dll,但未在“用户代码”中处理 错误行是Debug.WriteLine(“找到的设备:+devices[0].Id”) 我不知道为什么它超出了范围。谢谢 namespace BluetoothLE { /// <summary> /

我使用C#查找Windows 10上的蓝牙低能耗设备。当我运行以下代码时,我遇到了这样一个错误:

中发生了“System.ArgumentOutOfRangeException”类型的异常 mscorlib.dll,但未在“用户代码”中处理

错误行是Debug.WriteLine(“找到的设备:+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);


            }
        }

    }
名称空间蓝牙
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
私有异步void LookForPairedDevices()
{
//获取与Windows配对的可扩展设备
DeviceInformation Collection devices=等待DeviceInformation.FindAllAsync(BluetoothLEDevice.GetDeviceSelector());
Debug.WriteLine(“找到的设备:+设备[0].Id”);
}
}
}

您的错误在这一行:

Debug.WriteLine("Found device: " + devices[0].Id);
如果调试代码,您将看到
设备
的长度为0,并且您正在尝试访问第一个设备的属性
id
(该属性不存在)

您可能想考虑使用Frach循环来查看返回什么样的:

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

您的错误在这一行:

Debug.WriteLine("Found device: " + devices[0].Id);
如果调试代码,您将看到
设备
的长度为0,并且您正在尝试访问第一个设备的属性
id
(该属性不存在)

您可能想考虑使用Frach循环来查看返回什么样的:

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

DeviceInformation.FindalAsync(BluetoothLEDevice.GetDeviceSelector()
未返回任何设备,因此尝试访问索引0(第一项)时引发异常。
DeviceInformation.FindalAsync(BluetoothLEDevice.GetDeviceSelector()
未返回任何设备,因此尝试访问索引0(第一项)引发了异常。如果其中任何一个返回null,您将获得null引用异常,而不是参数超出范围。此错误是关于访问的项多于现有项。请参阅解释。如果其中任何一个返回null,您将获得null引用异常,而不是参数超出范围。此错误是关于访问更多项ems不存在。请使用Thx进行解释。