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