Сервер Bluetooth .NET, могу ли я отправлять на него данные с устройства Android? - PullRequest
0 голосов
/ 28 ноября 2018

Окончательное редактирование «Решение моей собственной проблемы»:

  • Панель управления> Настройки Bluetooth> COM-порты> Добавить / разрешить поступающие COM-соединения

Оригинальный пост:

Я впервые программирую разъемы Bluetooth или даже разрабатываю приложения для Windows / Android.Суть в том, что я прочитал Общие Bluetooth-соединения для передачи данных (RFCOMM) на InTheHand32 Wiki, но я, должно быть, упускаю суть или смотрю в неправильном направлении рассматриваемой проблемы.

Возобновите то, что я притворяюсьсделать: простое приложение Windows (оно будет работать только на рабочем столе Windows), поэтому я использую Windows Forms и стандартную среду .NET, которые могут общаться с приложением Android, работающим на мобильном телефоне, написанном на KotLin.

Я использовал InTheHand32 NuGet и реализовал приведенный ниже код, но всякий раз, когда я пытаюсь использовать тестовое приложение на своем телефоне (загруженное из App Store), я получаю ошибку неудачного соединения.

Связь осуществляется через Bluetooth, следуя протоколу 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 через Bluetooth с Android-приложением KotLin и обратно, проблема?

Мне не хватает понимания того, как создать дискработоспособный сервер Windows BT, кто постоянно ждет подключения устройства к нему?

Заранее благодарен за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...