PC藍(lán)牙通信C#代碼實(shí)現(xiàn)
本文實(shí)例為大家分享了C#實(shí)現(xiàn)PC藍(lán)牙通信代碼,供大家參考,具體內(nèi)容如下
添加引用InTheHand.Net.Personal.dll
首先創(chuàng)建一個(gè)藍(lán)牙類
class LanYa {
public string blueName { get; set; } //l藍(lán)牙名字
public BluetoothAddress blueAddress { get; set; } //藍(lán)牙的唯一標(biāo)識(shí)符
public ClassOfDevice blueClassOfDevice { get; set; } //藍(lán)牙是何種類型
public bool IsBlueAuth { get; set; } //指定設(shè)備通過驗(yàn)證
public bool IsBlueRemembered { get; set; } //記住設(shè)備
public DateTime blueLastSeen { get; set; }
public DateTime blueLastUsed { get; set; }
}
然后就是搜索設(shè)備
List<LanYa> lanYaList = new List<LanYa>(); //搜索到的藍(lán)牙的集合
BluetoothClient client = new BluetoothClient();
BluetoothRadio radio = BluetoothRadio.PrimaryRadio; //獲取藍(lán)牙適配器
radio.Mode = RadioMode.Connectable;
BluetoothDeviceInfo[] devices = client.DiscoverDevices();//搜索藍(lán)牙 10秒鐘
foreach (var item in devices) {
lanYaList.Add(new LanYa { blueName = item.DeviceName, blueAddress = item.DeviceAddress, blueClassOfDevice = item.ClassOfDevice, IsBlueAuth = item.Authenticated, IsBlueRemembered = item.Remembered, blueLastSeen = item.LastSeen, blueLastUsed = item.LastUsed });//把搜索到的藍(lán)牙添加到集合中
}
藍(lán)牙的配對(duì)
BluetoothClient blueclient = new BluetoothClient(); Guid mGUID1 = BluetoothService.Handsfree; //藍(lán)牙服務(wù)的uuid blueclient.Connect(s.blueAddress, mGUID) //開始配對(duì) 藍(lán)牙4.0不需要setpin
客戶端
BluetoothClient bl = new BluetoothClient();//
Guid mGUID2 = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");//藍(lán)牙串口服務(wù)的uuiid
try
{
bl.Connect(s.blue_address, mGUID);
//"連接成功";
}
catch(Exception x)
{
//異常
}
var v = bl.GetStream();
byte[] sendData = Encoding.Default.GetBytes(“人生苦短,我用python”);
v.Write(sendData, 0, sendData.Length); //發(fā)送
服務(wù)器端
bluetoothListener = new BluetoothListener(mGUID2);
bluetoothListener.Start();//開始監(jiān)聽
bl = bluetoothListener.AcceptBluetoothClient();//接收
while (true)
{
byte[] buffer = new byte[100];
Stream peerStream = bl.GetStream();
peerStream.Read(buffer, 0, buffer.Length);
string data= Encoding.UTF8.GetString(buffer).ToString().Replace("\0", "");//去掉后面的\0字節(jié)
}
基本上就是這些吧!
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Unity UGUI的HorizontalLayoutGroup水平布局組件介紹使用
這篇文章主要為大家介紹了Unity UGUI的HorizontalLayoutGroup水平布局組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
DataGridView控件顯示行號(hào)的正確代碼及分析
今天要用到DataGridView,想給它動(dòng)態(tài)的顯示行號(hào)。于是在網(wǎng)上找了一下解決方法。結(jié)果發(fā)現(xiàn)了不少問題。然而就是這么一段有錯(cuò)的代碼,幾乎充斥著整個(gè)互聯(lián)網(wǎng),千篇一律的COPY,沒有一個(gè)人糾正2013-08-08
C#實(shí)現(xiàn)塊狀鏈表的項(xiàng)目實(shí)踐
這篇文章主要介紹了C#實(shí)現(xiàn)塊狀鏈表的項(xiàng)目實(shí)踐,通過定義塊和鏈表類,利用塊內(nèi)元素引用實(shí)現(xiàn)塊與塊之間的鏈接關(guān)系,從而實(shí)現(xiàn)對(duì)塊狀鏈表的遍歷、插入和刪除等操作,感興趣的可以了解一下2023-11-11
一種c#深拷貝方式完勝java深拷貝(實(shí)現(xiàn)上的對(duì)比分析)
下面小編就為大家?guī)硪黄环Nc#深拷貝方式完勝java深拷貝(實(shí)現(xiàn)上的對(duì)比分析)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07
C#實(shí)現(xiàn)Bitmap類型與Byte[]類型相互轉(zhuǎn)化的示例詳解
在C#編程中,Bitmap類型和Byte[]類型之間的相互轉(zhuǎn)化是圖像處理和數(shù)據(jù)傳輸中常見的需求,Bitmap類型表示一個(gè)位圖圖像,而Byte[]類型則是一個(gè)字節(jié)數(shù)組,本文將詳細(xì)介紹如何在這兩種類型之間進(jìn)行相互轉(zhuǎn)化,需要的朋友可以參考下2024-07-07
c#使用nsoup解析html亂碼解決方法分享 nsoup教程
NSoup是JSoup的Net移植版本。使用方法基本一致。如果項(xiàng)目涉及HTML的處理,強(qiáng)烈推薦NSoup。但是遺憾的是NSoup默認(rèn)的編碼是UTF-8,處理中文有亂碼,下面給出二種解決方法2014-01-01
C#?將數(shù)據(jù)庫SqlServer數(shù)據(jù)綁定到類中的過程詳解
本文講述的是讀取數(shù)據(jù)庫中數(shù)據(jù)的常用做法,即將數(shù)據(jù)庫中的數(shù)據(jù)綁定到創(chuàng)建的類中,再將類綁定到DataGridView的數(shù)據(jù)源中的做法,對(duì)C#將SqlServer數(shù)據(jù)綁定到類中感興趣的朋友一起看看吧2022-06-06

