Справка по Bluetoothlistener - PullRequest
0 голосов
/ 02 июля 2010

Я не очень уверен, но по некоторым причинам я не могу использовать BlueToothListener, который получает строковую информацию.

Я попытался следовать этому примеру , и это не похожеработа.

Фрагмент кода

private Guid Rffcomm = BluetoothService.RFCommProtocol; 
private void btnConnect_Click(object sender, EventArgs e)
{
    if (comboBox1.SelectedValue != null)
    {
        try
        {
            BluetoothClient btSender = null;
            btSender = new BluetoothClient();
            btSender.Connect(new BluetoothEndPoint(selectedAddr, Rffcomm));
            MessageBox.Show("1");
            StreamWriter swSender = new StreamWriter(btSender.GetStream());
            swSender.WriteLine("Test 1");
            //swSender.Flush();
            // swSender.Close(); // At first it worked, but after some tries, IOsocket exception keeps popping out.
        }
        catch (Exception se)
        {
            MessageBox.Show(se.Message);
        }
    }
}

void listening()
{
    try
    {
        bool run = true; 
        BluetoothListener btl = new BluetoothListener(Rffcomm);
        btl.Start();
        while(run)
        {
            BluetoothClient btReceiver = btl.AcceptBluetoothClient();
            StreamReader srReceiver = new StreamReader(btReceiver.GetStream());
            String writeInfo = srReceiver.ReadLine();
            test = writeInfo;
            srReceiver.Close();
        }
        MessageBox.Show(test);
    }
    catch(Exception ex) { MessageBox.Show(ex.Message); }
}

private void button1_Click(object sender, EventArgs e)
{
    // Start a new thread to deal with an incoming Bluetooth connection
    Thread t = new Thread(new ThreadStart(listening));
    t.Start();
}

1 Ответ

1 голос
/ 02 июля 2010

Так как я писал вам на другом форуме:: -)

Да, при использовании BluetoothService.RFCommProtocol клиент подключится к случайной службе на основе RfComm

Примечание " random " !!!

Вам не нужно использовать «RFCommProtocol» в качестве идентификатора класса обслуживания, а делать, как сказано в руководстве пользователя:

Приложения / службы Bluetooth идентифицируются и регистрируются с помощью UUID (универсального уникального идентификатора), 128-битного значения, которое представлено классом System.Guid в .NET. Если кто-то создает новую службу, то новый UUID должен быть создан во время разработки и введен в исходный код двух приложений, новое значение можно создать, вызвав Guid.NewValue или используя программу guidgen.exe для Windows SDK В Visual Studio доступ к нему осуществляется с помощью пункта меню Инструменты, «Создать GUID».

И использовать этот Guid в качестве значения Id класса обслуживания как на сервере (в его конструкторе), так и на клиенте (метод Connect). Сделай это и посмотри, что произойдет.

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