欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#連接藍(lán)牙設(shè)備的實現(xiàn)示例

 更新時間:2023年01月30日 10:27:15   作者:晚風(fēng)偷吻云朵  
本文主要介紹了C#連接藍(lán)牙設(shè)備的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

看過各種博主的文章,發(fā)現(xiàn)基本上都是屬于誤人子弟的文章,踩過各種坑最終實現(xiàn)了此功能。

1.思路

電腦藍(lán)牙和藍(lán)牙模塊配對連接
和我們平時正常連接藍(lán)牙設(shè)備一樣,需要先搜索附近的藍(lán)牙設(shè)備,然后根據(jù)設(shè)備名來選擇要連接的藍(lán)牙模塊,連接時就根據(jù)該藍(lán)牙模塊的地址(惟一標(biāo)識號)來進(jìn)行連接。

2.實現(xiàn)

2.1使用NuGet包

在這里我發(fā)現(xiàn)有些文章第一步引用的包都錯了,導(dǎo)致代碼基本上都是報錯狀態(tài),咱也不知道你們是怎么運(yùn)行起來的。

直接用這個包就可以,我看有的是用InTheHand.Net,這個雷我踩過了,所以別猶豫直接用32feet.NET這個包。

2.2搜索附件藍(lán)牙設(shè)備

//處理藍(lán)牙的對象
            BluetoothClient client = new BluetoothClient();
            //獲取電腦藍(lán)牙
            BluetoothRadio radio = BluetoothRadio.PrimaryRadio;
            //設(shè)置電腦藍(lán)牙可被搜索到
            radio.Mode = RadioMode.Connectable;     
            //需要連接的藍(lán)牙模塊的唯一標(biāo)識符
            //這里需要注意一下,雖然下面foreach里能根據(jù)藍(lán)牙名稱找到唯一標(biāo)識符,但是我們這里也要給個默認(rèn)值,否則的話下面會有報錯提示
            BluetoothAddress blueAddress = new BluetoothAddress(new byte[] { 0x8e, 0xed, 0x10, 0xa3, 0xa8, 0xaa });
            //搜索藍(lán)牙設(shè)備,10秒
            BluetoothDeviceInfo[] devices = client.DiscoverDevices();   
            //從搜索到的所有藍(lán)牙設(shè)備中選擇需要的那個
            foreach (var item in devices)
            {
                //根據(jù)藍(lán)牙名字找
                if (item.DeviceName.Equals("BarCode Scanner HID"))  
                {
                    Console.WriteLine(item.DeviceAddress);
                    Console.WriteLine(item.DeviceName);
                    //獲得藍(lán)牙模塊的唯一標(biāo)識符
                    blueAddress = item.DeviceAddress;           
                    break;
                }
            }

查看唯一標(biāo)識符的方法:
控制面板=》查看設(shè)備和打印機(jī)=》選中你需要連接的藍(lán)牙設(shè)備=》右鍵屬性=》藍(lán)牙

BluetoothAddress blueAddress = new BluetoothAddress(new byte[] {<!--{C}%3C!%2D%2D%20%2D%2D%3E--> 0x8e, 0xed, 0x10, 0xa3, 0xa8, 0xaa });

還是上面的代碼,我抽出來說一下,這里的這個唯一標(biāo)識符需要倒著填,格式就是0x??的格式來寫,不理解的看圖和代碼對應(yīng)一下。

3.功能實現(xiàn)

public void LanYa()
        {
            //處理藍(lán)牙的對象
            BluetoothClient client = new BluetoothClient();
            //獲取電腦藍(lán)牙
            BluetoothRadio radio = BluetoothRadio.PrimaryRadio;
            //設(shè)置電腦藍(lán)牙可被搜索到
            radio.Mode = RadioMode.Connectable;     
            //需要連接的藍(lán)牙模塊的唯一標(biāo)識符
            BluetoothAddress blueAddress = new BluetoothAddress(new byte[] { 0x8e, 0xed, 0x10, 0xa3, 0xa8, 0xaa });
            //搜索藍(lán)牙設(shè)備,10秒
            BluetoothDeviceInfo[] devices = client.DiscoverDevices();   
            //從搜索到的所有藍(lán)牙設(shè)備中選擇需要的那個
            //BarCode Scanner HID =》藍(lán)牙設(shè)備名稱
            foreach (var item in devices)
            {
                //根據(jù)藍(lán)牙名字找
                if (item.DeviceName.Equals("BarCode Scanner HID"))  
                {
                    Console.WriteLine(item.DeviceAddress);
                    Console.WriteLine(item.DeviceName);
                    //獲得藍(lán)牙模塊的唯一標(biāo)識符
                    blueAddress = item.DeviceAddress;           
                    break;
                }
            }
            //BluetoothService.SerialPort根本無用
            BluetoothEndPoint ep = new BluetoothEndPoint(blueAddress,Guid.Parse("00001124-0000-1000-8000-00805f9b34fb"));
            //BluetoothEndPoint ep = new BluetoothEndPoint(blueAddress, BluetoothService.SerialPort);
            client.Connect(ep);//開始配對
            if (client.Connected)
            {
                //連接成功
                
            }

這就是掃描+連接我們的藍(lán)牙的所有代碼,這里比較重要的一點是配對,我就是在這里卡了挺長時間的。

BluetoothEndPoint ep = new BluetoothEndPoint(blueAddress,Guid.Parse("00001124-0000-1000-8000-00805f9b34fb"));
            //BluetoothEndPoint ep = new BluetoothEndPoint(blueAddress, BluetoothService.SerialPort);
            client.Connect(ep);//開始配對

這里面按網(wǎng)上的寫法是BluetoothService.SerialPort類型的,有區(qū)別的只是BluetoothService點出來的服務(wù)不一樣,不過我看網(wǎng)上也有很多對這塊代碼報錯提問的,沒人回答為什么會報錯,這里我來說一下,這個服務(wù)的意思是用什么服務(wù)和藍(lán)牙建立連接,而使用BluetoothService.SerialPort這種類型寫得默認(rèn)是安卓設(shè)備的UUID,這里我也很納悶的是,網(wǎng)上很多代碼在說是使用的PC端,那為什么獲取到的安卓的默認(rèn)UUID還可以連上?

這里我說一下我最后的實現(xiàn)過程。

控制面板=》查看設(shè)備和打印機(jī)=》選中你需要連接的藍(lán)牙設(shè)備=》右鍵屬性=》硬件=》藍(lán)牙HID設(shè)備=》屬性=》詳細(xì)信息=》藍(lán)牙服務(wù)Guid
這里完全是我摸索出來的,所以說遇到問題堅決不要怕,抽根煙休息一下繼續(xù)搞就是,還能連個藍(lán)牙都搞不定嘛。

我覺著這一步還是比較重要的,因為搜索附件藍(lán)牙設(shè)備這種代碼很多,完全就是輪子,但是最后一步匹配的時候就不一定是別人寫的一定正確了。這個東西其實就是藍(lán)牙提供服務(wù)的一個Guid也叫UUID,所以說這個還是得根據(jù)實際情況來寫的。

4.總結(jié)

我就很納悶,在我查資料的過程中,十篇文章有九篇是抄的一模一樣的,而且還打上了原創(chuàng)的標(biāo)簽,吃相就那么難看嘛,如果您懂這個知識點我覺著抄了也無所謂,起碼有不懂的朋友請教的時候您還可以講的出來,最過分的還有些哥們抄都沒抄全,也喊著可以運(yùn)行,您這不是不當(dāng)人嘛?

到此這篇關(guān)于C#連接藍(lán)牙設(shè)備的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)C#連接藍(lán)牙設(shè)備內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#多線程之取消架構(gòu)介紹

    C#多線程之取消架構(gòu)介紹

    這篇文章介紹了C#多線程之取消架構(gòu),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#使用CefSharp控件實現(xiàn)爬蟲

    C#使用CefSharp控件實現(xiàn)爬蟲

    這篇文章介紹了C#使用CefSharp控件實現(xiàn)爬蟲的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#實現(xiàn)在Form里面內(nèi)嵌dos窗體的方法

    C#實現(xiàn)在Form里面內(nèi)嵌dos窗體的方法

    這篇文章主要介紹了C#實現(xiàn)在Form里面內(nèi)嵌dos窗體的方法,涉及C#針對Form窗體的設(shè)置及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • 如何利用C#通過sql語句操作Sqlserver數(shù)據(jù)庫教程

    如何利用C#通過sql語句操作Sqlserver數(shù)據(jù)庫教程

    ado.net提供了豐富的數(shù)據(jù)庫操作,下面這篇文章主要給大家介紹了關(guān)于如何利用C#通過sql語句操作Sqlserver數(shù)據(jù)庫教程的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • C#中ArrayList的使用方法

    C#中ArrayList的使用方法

    這篇文章主要介紹了
    2013-12-12
  • C# String字符串案例詳解

    C# String字符串案例詳解

    這篇文章主要介紹了C# String字符串案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C# SQLite數(shù)據(jù)庫入門使用說明

    C# SQLite數(shù)據(jù)庫入門使用說明

    這篇文章主要給大家介紹了關(guān)于C#中SQLite數(shù)據(jù)庫入門使用的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • C#計算器編寫代碼

    C#計算器編寫代碼

    這篇文章主要為大家分享了C#計算器編寫代碼,供大家參考,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • C#組合函數(shù)的使用詳解

    C#組合函數(shù)的使用詳解

    本篇文章是對C#中的組合函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#端口轉(zhuǎn)發(fā)用法詳解

    C#端口轉(zhuǎn)發(fā)用法詳解

    這篇文章主要介紹了C#端口轉(zhuǎn)發(fā)用法,以實例形式較為詳細(xì)的分析了C#實現(xiàn)端口轉(zhuǎn)發(fā)的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03

最新評論