最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

1.思路

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

2.實(shí)現(xiàn)

2.1使用NuGet包

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

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

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

//處理藍(lán)牙的對(duì)象
            BluetoothClient client = new BluetoothClient();
            //獲取電腦藍(lán)牙
            BluetoothRadio radio = BluetoothRadio.PrimaryRadio;
            //設(shè)置電腦藍(lán)牙可被搜索到
            radio.Mode = RadioMode.Connectable;     
            //需要連接的藍(lán)牙模塊的唯一標(biāo)識(shí)符
            //這里需要注意一下,雖然下面foreach里能根據(jù)藍(lán)牙名稱找到唯一標(biāo)識(shí)符,但是我們這里也要給個(gè)默認(rèn)值,否則的話下面會(huì)有報(bào)錯(cuò)提示
            BluetoothAddress blueAddress = new BluetoothAddress(new byte[] { 0x8e, 0xed, 0x10, 0xa3, 0xa8, 0xaa });
            //搜索藍(lán)牙設(shè)備,10秒
            BluetoothDeviceInfo[] devices = client.DiscoverDevices();   
            //從搜索到的所有藍(lán)牙設(shè)備中選擇需要的那個(gè)
            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)識(shí)符
                    blueAddress = item.DeviceAddress;           
                    break;
                }
            }

查看唯一標(biāo)識(shí)符的方法:
控制面板=》查看設(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 });

還是上面的代碼,我抽出來(lái)說(shuō)一下,這里的這個(gè)唯一標(biāo)識(shí)符需要倒著填,格式就是0x??的格式來(lái)寫(xiě),不理解的看圖和代碼對(duì)應(yīng)一下。

3.功能實(shí)現(xiàn)

public void LanYa()
        {
            //處理藍(lán)牙的對(duì)象
            BluetoothClient client = new BluetoothClient();
            //獲取電腦藍(lán)牙
            BluetoothRadio radio = BluetoothRadio.PrimaryRadio;
            //設(shè)置電腦藍(lán)牙可被搜索到
            radio.Mode = RadioMode.Connectable;     
            //需要連接的藍(lán)牙模塊的唯一標(biāo)識(shí)符
            BluetoothAddress blueAddress = new BluetoothAddress(new byte[] { 0x8e, 0xed, 0x10, 0xa3, 0xa8, 0xaa });
            //搜索藍(lán)牙設(shè)備,10秒
            BluetoothDeviceInfo[] devices = client.DiscoverDevices();   
            //從搜索到的所有藍(lán)牙設(shè)備中選擇需要的那個(gè)
            //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)識(shí)符
                    blueAddress = item.DeviceAddress;           
                    break;
                }
            }
            //BluetoothService.SerialPort根本無(wú)用
            BluetoothEndPoint ep = new BluetoothEndPoint(blueAddress,Guid.Parse("00001124-0000-1000-8000-00805f9b34fb"));
            //BluetoothEndPoint ep = new BluetoothEndPoint(blueAddress, BluetoothService.SerialPort);
            client.Connect(ep);//開(kāi)始配對(duì)
            if (client.Connected)
            {
                //連接成功
                
            }

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

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

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

這里我說(shuō)一下我最后的實(shí)現(xiàn)過(guò)程。

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

我覺(jué)著這一步還是比較重要的,因?yàn)樗阉鞲郊{(lán)牙設(shè)備這種代碼很多,完全就是輪子,但是最后一步匹配的時(shí)候就不一定是別人寫(xiě)的一定正確了。這個(gè)東西其實(shí)就是藍(lán)牙提供服務(wù)的一個(gè)Guid也叫UUID,所以說(shuō)這個(gè)還是得根據(jù)實(shí)際情況來(lái)寫(xiě)的。

4.總結(jié)

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

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

相關(guān)文章

  • C#同步網(wǎng)絡(luò)時(shí)間的方法實(shí)例詳解

    C#同步網(wǎng)絡(luò)時(shí)間的方法實(shí)例詳解

    這篇文章主要介紹了C#同步網(wǎng)絡(luò)時(shí)間的方法,以實(shí)例形式較為詳細(xì)的分析了C#獲取網(wǎng)絡(luò)時(shí)間與同步本機(jī)系統(tǒng)時(shí)間的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • C#中if語(yǔ)句使用概述

    C#中if語(yǔ)句使用概述

    這里介紹C#使用if語(yǔ)句,C#使用if語(yǔ)句中的表達(dá)式必須放在一對(duì)圓括號(hào)中。除此之外,表達(dá)式必須是布爾表達(dá)式
    2014-03-03
  • Entity?Framework代碼優(yōu)先(Code?First)模式

    Entity?Framework代碼優(yōu)先(Code?First)模式

    這篇文章介紹了Entity?Framework代碼優(yōu)先(Code?First)模式,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 使用C#實(shí)現(xiàn)讀取PDF中所有文本內(nèi)容

    使用C#實(shí)現(xiàn)讀取PDF中所有文本內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)讀取PDF中所有文本內(nèi)容,文中的示例代碼簡(jiǎn)潔易懂,具有一定的學(xué)習(xí)價(jià)值,有需要的小伙伴可以了解下
    2024-02-02
  • 詳解從零開(kāi)始---用C#制作掃雷游戲

    詳解從零開(kāi)始---用C#制作掃雷游戲

    這篇文章主要介紹了詳解從零開(kāi)始---用C#制作掃雷游戲,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-06-06
  • C#微信接口之推送模板消息功能示例

    C#微信接口之推送模板消息功能示例

    這篇文章主要介紹了C#微信接口之推送模板消息功能,結(jié)合實(shí)例形式分析了C#操作微信推送模板消息接口的具體操作步驟與相關(guān)使用技巧,需要的朋友可以參考下
    2017-07-07
  • C#中const 和 readonly 修飾符的用法詳解

    C#中const 和 readonly 修飾符的用法詳解

    這篇文章主要介紹了C#中const 和 readonly 修飾符的用法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • C# datatable 不能通過(guò)已刪除的行訪問(wèn)該行的信息處理方法

    C# datatable 不能通過(guò)已刪除的行訪問(wèn)該行的信息處理方法

    采用datatable.Rows[i].Delete()刪除行后再訪問(wèn)該表時(shí)出現(xiàn)出現(xiàn)“不能通過(guò)已刪除的行訪問(wèn)該行的信息”的錯(cuò)誤
    2012-11-11
  • C#幾種截取字符串的方法小結(jié)

    C#幾種截取字符串的方法小結(jié)

    C#幾種截取字符串的方法小結(jié),需要的朋友可以參考一下
    2013-04-04
  • C#事件管理器如何清空所有監(jiān)聽(tīng)詳解

    C#事件管理器如何清空所有監(jiān)聽(tīng)詳解

    這篇文章主要給大家介紹了關(guān)于C#事件管理器如何清空所有監(jiān)聽(tīng)的相關(guān)資料,文中通過(guò)示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論

兴国县| 尼玛县| 大姚县| 西昌市| 江西省| 湖北省| 荆州市| 甘泉县| 冕宁县| 通榆县| 龙泉市| 阿克陶县| 东山县| 外汇| 来宾市| 威宁| 江山市| 得荣县| 乌恰县| 宾川县| 铜山县| 东源县| 洛隆县| 冀州市| 抚顺市| 长宁县| 兴安盟| 休宁县| 夏津县| 探索| 陆良县| 长岛县| 兴宁市| 申扎县| 淮阳县| 宣武区| 湖南省| 威信县| 文山县| 临海市| 昌平区|