告别过时教程!用最新InTheHand.Net.Bluetooth NuGet包搞定C#蓝牙通信(UWP/WinForms通用)
还在为C#蓝牙开发找不到靠谱教程而头疼?网上充斥着基于InTheHand.Net.Personal.dll的过时方案,而微软官方文档又语焉不详。本文将带你用2023年最新的InTheHand.Net.Bluetooth NuGet包,半小时内完成从设备搜索到数据接收的全流程实战。
1. 环境准备与NuGet配置
1.1 选择正确的开发栈
首先确认你的开发环境:
- Visual Studio 2022(推荐17.5+版本)
- .NET 6.0/7.0(传统.NET Framework项目需4.6.1+)
- Windows 10/11(需开启蓝牙支持)
注意:UWP项目需要确保
Package.appxmanifest中已声明蓝牙能力:xml复制<Capabilities> <DeviceCapability Name="bluetooth" /> </Capabilities>
1.2 安装NuGet包的正确姿势
在VS的包管理器控制台执行:
powershell复制Install-Package InTheHand.Net.Bluetooth -Version 4.0.5
或者通过GUI安装时,务必注意不要混淆以下包:
| 包名称 | 状态 | 适用场景 |
|---|---|---|
| InTheHand.Net.Bluetooth | 活跃维护 | UWP/WinForms/WPF |
| InTheHand.Net.Personal | 已废弃 | 仅旧版.NET |
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 蓝牙设备发现实战
2.1 基础设备扫描
csharp复制using InTheHand.Net.Sockets;
using InTheHand.Net.Bluetooth;
var client = new BluetoothClient();
var devices = client.DiscoverDevices(maxDevices: 10,
authenticated: false,
remembered: false,
unknown: true);
Console.WriteLine($"发现 {devices.Count} 个设备:");
foreach (var device in devices)
{
Console.WriteLine($"[{device.DeviceAddress}] {device.DeviceName} - 信号强度:{device.Rssi}");
}
2.2 高级发现技巧
- 过滤特定设备类型:
csharp复制var heartRateDevices = devices
.Where(d => d.ClassOfDevice.Device == DeviceClass.Health)
.ToList();
- *异步发现模式
