測試環境:
visual studio 2022
win11筆記本電腦,具有藍牙功能
.net6控制臺
測試步驟如下:
1 新增名為BluetoothDemo控制臺項目
2 通過nuget安裝InTheHand.Net.Bluetooth,版本選擇4.2.1和安裝InTheHand.Net.Obex,版本選擇4.1.0,如下圖:
3? 在程序的bin/Debug目錄下新增一個名為test.txt的文本文件,內容隨便填點東西
4 在主程序中編輯代碼如下:
using InTheHand.Net.Obex;
using InTheHand.Net.Bluetooth;
using InTheHand.Net.Sockets;
using System.Text;
using InTheHand.Net;using (var client = new BluetoothClient())
{// 搜索附近的藍牙設備var devices = client.DiscoverDevices();foreach (var device in devices){Console.WriteLine($"Name: {device.DeviceName}, Address: {device.DeviceAddress}");}
}//從前面的掃描藍牙設備中獲取到的設備地址
string deviceAddress = "3839CDC9171A";
BluetoothAddress address = BluetoothAddress.Parse(deviceAddress);
Guid serviceClass = BluetoothService.ObexObjectPush;
//在程序的bin/Debug目錄下新增一個test.txt文件
string filePath = "test.txt"; Uri uri = new Uri($"obex://{deviceAddress}/{System.IO.Path.GetFileName(filePath)}");ObexWebRequest request = new ObexWebRequest(uri);
request.ReadFile(filePath);using (ObexWebResponse response = (ObexWebResponse)request.GetResponse())
{if (response.StatusCode == (ObexStatusCode.OK|ObexStatusCode.Final)){Console.WriteLine("文件發送成功");}else{Console.WriteLine("文件發送失敗: " + response.StatusCode);}
}Console.WriteLine("Hello, World!");
上述代碼中的地址deviceAddress根據實際情況填寫
程序運行結果如下:
上面的iOOO Z9x是我的手機設備上的藍牙名稱,可以看到已經發送文件到我的手機了