Подключение к устройству Bluetooth с использованием 32 футов бросков SocketException (код: 10022) - PullRequest
0 голосов
/ 31 октября 2018

Обновление: решение
Мне удалось решить проблему, выключив / включив Bluetooth на моем компьютере (устройство, с которого я отправляю данные)


Я экспериментирую с библиотекой 32feet.net Bluetooth, но натолкнулся на что-то странное. Когда я нажму кнопку сканирования, я открою SelectBluetoothDeviceDialog, и когда BluetoothClient соединится с BluetoothEndPoint, произойдет новое.

Вчера все работало нормально, но теперь мой код сломается на client.Connect(endPoint) и Bluetooth.Connect(device) по какой-то причине вернет false.

client.Connect (конечная точка)

Код ошибки: 10022
System.Net.Sockets.SocketException: 'указан неверный аргумент C0EEFBED5AAD: 0000111e00001000800000805f9b34fb'


enter image description here

private void btnScanBeta_Click(object sender, EventArgs e)
{

    var device = Bluetooth.DeviceDialog();
    if (!Bluetooth.Connect(device))
    {
        throw new Exception("Can't connect to device.");
    }

    BluetoothEndPoint endPoint = new BluetoothEndPoint(device.DeviceAddress, BluetoothService.Handsfree);

    using (BluetoothClient client = new BluetoothClient())
    {
        try
        {
            client.Connect(endPoint);
        }
        catch (Exception)
        {
            throw;
        }
    }
}

Bluetooth.DeviceDialog ()

public static BluetoothDeviceInfo DeviceDialog(bool showAuthenticated = true, bool showRemembered = true, bool showUnknown = true)
{
    using (SelectBluetoothDeviceDialog dialog = new SelectBluetoothDeviceDialog())
    {
        dialog.ShowAuthenticated = showAuthenticated;
        dialog.ShowRemembered = showRemembered;
        dialog.ShowUnknown = showUnknown;

        if (dialog.ShowDialog() == DialogResult.OK)
        {
            if (dialog.SelectedDevice != null)
            {
                return dialog.SelectedDevice;
            }
            else return null;
        }
        else return null;
    }
}

Bluetooth.Connect ()

public static bool Connect(BluetoothDeviceInfo device)
{
    if (device.Authenticated)
    {
        return true;
    }

    return BluetoothSecurity.PairRequest(device.DeviceAddress, null);
}
...