我是小猪快跑 2023-10-27 14:29 采纳率: 0%
浏览 15
已结题

C#手机经典蓝牙连接PC,卡住了

需求:安卓手机蓝牙连接WIN10笔记本PC后,PC向手机蓝牙发送十六进制数据流。
现状:用2台安卓手机间已试过可以传输。一台装同事研发的APP,APP上有个“连接“”按钮,另一台使用第三方工具“蓝牙串口助手”当作服务器端,当“蓝牙助手”处于监测状态下,APP点一下“连接”,蓝牙助手能显示连接成功,并能反向对手机发送hex数据。

问题点:当C#编写的服务器端代码运行时,我自认为是相当于串口助手的服务器端,APP点一下"连接",代码却没有执行下去,仍然卡在 client = bluetoothListener.AcceptBluetoothClient();这行上。

已知手机和PC蓝牙可以互传文件,蓝牙应该是好的。但是已匹配的蓝牙,手机连接电脑一直显示连接失败,传文件竟然可以传,奇怪的现象有影响吗?

    public static void ReceiveData()
    {
        try
        {
            Guid mGUID2 = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");//蓝牙串口服务的uuiid
            BluetoothListener bluetoothListener = new BluetoothListener(mGUID2);
            bluetoothListener.Start();//开始监听

            LogHelper.Write("服务器端监听已开启!");

            client = bluetoothListener.AcceptBluetoothClient();//接收,执行不下去

            IsConnected = true;

        }
        catch (Exception ex)
        {
            IsConnected = false;
        }

        while (IsConnected)
        {
              XXXXX
        }
    }

用的是经典蓝牙,InTheHand.Net.Personal.dll

  • 写回答

17条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-27 14:30
    关注
    获得0.45元问题酬金

    引自强大而免费的微信小程序:皆我百晓生

    根据你提供的信息,问题可能出在bluetoothListener.AcceptBluetoothClient()这行上。这个方法会阻塞线程,直到有一个新的蓝牙客户端连接到服务器。但是,如果调用这个方法后没有任何客户端连接服务器,它将一直阻塞,导致代码无法继续执行。

    你可以尝试增加一些调试输出来确认是否有蓝牙客户端尝试连接,或者查看是否有其他错误导致代码无法继续执行。你还可以尝试在另外一个线程中执行bluetoothListener.AcceptBluetoothClient(),这样可以防止主线程被阻塞。你可以使用Task.Run来启动一个新的线程,类似于下面的代码:

    Task.Run(() => {
        client = bluetoothListener.AcceptBluetoothClient();
        IsConnected = true;
    });
    

    另外,确保你的设备已经配对成功并且蓝牙连接已经建立。你提到已匹配的蓝牙连接一直显示连接失败,这可能意味着存在其他问题。你可以尝试在手机和电脑之间尝试其他的蓝牙连接方式,例如使用系统的蓝牙设置进行连接,以确认是否存在连接问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 创建了问题 10月27日

悬赏问题

  • ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏
  • ¥20 校园网认证openwrt插件
  • ¥15 以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
  • ¥15 某东JD算法逆向算法
  • ¥15 求GCMS辅导数据分析
  • ¥30 SD中的一段Unet下采样代码其中的resnet是谁跟谁进行残差连接
  • ¥15 Unet采样阶段的res_samples问题
  • ¥60 Python+pygame坦克大战游戏开发实验报告
  • ¥15 R语言regionNames()和demomap()无法选中中文地区的问题
  • ¥15 Open GL ES 的使用