蓝牙.NET服务器,我可以从Android设备向其发送数据吗?

时间:2018-11-28 00:23:10

标签: c# android .net bluetooth

最终编辑“解决我自己的问题”:

  • 控制面板>蓝牙设置> COM端口>添加/允许传入的COM连接

原始帖子:

这是我第一次编程蓝牙插座,甚至是开发Windows / Android Apps。最重要的是,我已经阅读了InTheHand32 Wiki上的常规蓝牙数据连接(RFCOMM),但是我必须遗漏了这一点或只是眼前的问题的方向错误。

我假装要做的事情: 一个简单的Windows App(它将仅在Windows桌面上运行),因此,我使用的是Windows Forms和标准.NET框架,它们可以与以KotLin编写的在手机上运行的Android App通信。

我使用了InTheHand32 NuGet,并实现了以下代码,但是每当我尝试在手机上使用测试应用程序(从App Store下载)时,都会出现连接失败的错误。

遵循Rfcomm协议,通讯是通过蓝牙完成的,因此编写代码的语言应该不是问题。

我的C#在下面:

    private void StartServer()
    {
        Thread btServerThread = new Thread(new ThreadStart(Listen));
        btServerThread.Start();
    }

    private void Listen()
    {
        Guid serviceId = BluetoothService.SerialPort;
        Utils.Print(serviceId.ToString());

        ServiceRecordBuilder recordBuilder = new ServiceRecordBuilder();
        recordBuilder.AddServiceClass(serviceId);
        recordBuilder.ProtocolType = BluetoothProtocolDescriptorType.Rfcomm;
        recordBuilder.ProviderName = "propstring";
        recordBuilder.ServiceDescription = "propstring";
        recordBuilder.ServiceName = "BP-Authenticator";
        ServiceRecord record = recordBuilder.ServiceRecord;

        BluetoothListener btListener = new BluetoothListener(serviceId, record);
        btListener.Start();
        BluetoothClient connection = btListener.AcceptBluetoothClient();

        Stream stream = connection.GetStream();

        byte[] recievedDataBuffer;
        byte[] sendDataBuffer;

        while (true)
        {
            recievedDataBuffer = new byte[CHANNEL_SIZE];
            sendDataBuffer = new byte[CHANNEL_SIZE];

            try
            {
                stream.Read(recievedDataBuffer, 0, CHANNEL_SIZE);
                Utils.Print($"{Encoding.ASCII.GetString(recievedDataBuffer)}");
                sendDataBuffer = Encoding.ASCII.GetBytes("Hello from the other side");
                stream.Write(sendDataBuffer, 0, CHANNEL_SIZE);
            }
            catch (IOException)
            {
                ;
            }
        }
    }

Windows .NET应用程序通过蓝牙与KotLin Android应用程序通信并返回时会出现问题吗?

我想念有关如何创建可发现的Windows BT Server的知识,谁一直在等待设备连接到它?

在此先感谢您的帮助。

0 个答案:

没有答案