笔记本蓝牙无法接收文件,只可以发送。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记本蓝牙无法接收文件,只可以发送。相关的知识,希望对你有一定的参考价值。

本子只能给手机发送文件,却无法接收文件,以前有“接收文件”的选项的,但是后来没有了。本子做过一次系统,不知有没有关系?但我已经重新安装了蓝牙的驱动了。求帮忙,急死了!

首先看两个设备是否都具有蓝牙功能(如果是电脑还需要正确安装蓝牙驱动);其次看设备是否打开蓝牙功能(不打开的话设备不能被找到);再次还要成功连接两个设备(一般要用到PIN码和配对码。PIN码一般是“0000”、“1111”或“1234”,配对码是当下设置并使用的,两个设备要求配对必须一致);第四、传送距离一般不得超过10米,否则传送会中断;第五、传送成功会有成功提示,只需在接收方找到文件即可打开(一般在“我的文件”的bluetooth文件夹中);第五、选中要传输的文件,在菜单中选“分享”,再选择“蓝牙”,然后按提示操作,如操作正确会有传输成功完成的提示。

另外,蓝牙耳机与手机连接:手机要先打开蓝牙并处在被发现状态,按住蓝牙耳机开关键不放,直到手机蓝牙搜索到耳机并显示出耳机型号,再点击手机中显示的耳机型号进行连接,显示“已连接”说明连接成功,此时方可松开耳机开关键。

祝好运!
参考技术A 你接收文件的时候先右击蓝牙,看看里面有没有接收文件这个选项,如果有的话在接收文件之前打开这个选项,然后再用蓝牙发送。 参考技术B 首先要确认手机蓝牙与电脑蓝牙已经配对好了,再确认电脑蓝牙有没有正在连接其他蓝牙设备,比如蓝牙耳机,最好先断开,再右击桌面右下角的蓝牙图标,点击【接收文件】,这时通过手机蓝牙向电脑发送文件试下。

ESP32 BLE蓝牙 微信小程序通信发送大于20字符数据

由于微信小程序只支持BLE每次发送数据不大于20个字节,ESP32则有经典蓝牙、低功耗蓝牙两种模式。

要解决发送数据大于20个字节的问题,最简单实用的方式就是分包发送。如下图所示:

 

1、什么起始字符和结束字符 

  起始字符用来通知接收端,当接收端接收到起始字符之后开始通过循环拼接字符,当接收端接收到结束字符之后得就能得到本次接收的所有字符。

2、如何选择起始字符和结束字符

  参考ASCII码选择要发送的字符中没有的字符。

2、为什么小于18字符

  由于每次最多发送20个字符,那么为了保证安全和效率不要打擦边球,所有选择每个包最多18个字符。

 

参考小程序代码:

 //要发送的字符串(要在起始位置添加起始字符,结束位置添加结束字符)
    let order = that.stringToBytes(recs);
    let byteLen = order.byteLength;//长度
    let pos = 0;       //字符位置
    let tempBuffer;   //一次发送的数据
    var i = 0;          //计数

//为了安全每次发送18个字节 (每次最多20个)
//发送之前
    while (byteLen > 0) {
      i++;
      if (byteLen > 18) {
        tempBuffer = order.slice(pos, pos + 18);
        pos += 18;
        byteLen -= 18;
        console.log("第", i, "次发送:", tempBuffer);
        that.writeBLECharacteristicValue(tempBuffer);
      } else {
        tempBuffer = order.slice(pos, pos + byteLen);
        pos += byteLen;
        byteLen -= byteLen;
        console.log("第", i, "次发送:", tempBuffer);
        that.writeBLECharacteristicValue(tempBuffer);
      }
    }
    console.log("发送结束");

 

ESP32接收端参考代码:

   void onWrite(BLECharacteristic *pCharacteristic) {
        std::string rxValue = pCharacteristic->getValue();

        if (rxValue.length() > 0) {
            
            for (int i = 0; i < rxValue.length(); i++){  
                
                //防止 意外字符串过长
                if(bleReslen>1024){
                   bleReslen=0; 

                }

                //开始标志
                if((int)rxValue[i]==ASCII_STR){//ASCII  起始符
                    bleReslen=0;       

                //结束标志
                }else if((int)rxValue[i]==ASCII_END){//ASCII  结束符
                    extractData();//提取数据结束  
                    bleReslen=0;

                }else{
                   //拼接字符串
                    encBefor[bleReslen]=(char)rxValue[i];//赋值
                    bleReslen++;

                }
                           
            }

        }
       
    }        

 

以上是关于笔记本蓝牙无法接收文件,只可以发送。的主要内容,如果未能解决你的问题,请参考以下文章

笔记本电脑蓝牙无法使用

为啥电脑的蓝牙只能发送文件,而不能接收文件

求助,win10蓝牙显示已配对,但是没有连接

Arduino 和 PyBluez 之间的蓝牙通信

电脑无法使用蓝牙

beoplay 蓝牙耳机连接笔记本电脑无法连接,显示已配对,但无法连接,求解?