无法连接到已知的蓝牙设备

Trouble Connecting To Known Bluetooth Device

我正在使用 32Feet.Net 的示例(下面列出),为简洁起见删除了 using 语句。

    static void Main(string[] args)
    {
        BluetoothClient client = new BluetoothClient();

        BluetoothDeviceInfo device = null;
        foreach (var dev in client.DiscoverDevices())
        {
            if (dev.DeviceName.Contains("moto g(6)"))
            {
                device = dev;
                break;
            }
        }

        client.Connect(device.DeviceAddress, BluetoothService.SerialPort);
        client.Close();
    }

client.Connect(device.DeviceAddress, BluetoothService.SerialPort); 行因此错误 {"The requested address is not valid in its context 601D914C50BF:0000110100001000800000805f9b34fb"} 而爆炸。

我在示例中唯一改变的是找到我的智能 phone,moto g6。我错过了什么?

在悬赏这个问题之前,我需要澄清一下,我也在寻找文档或使用台式计算机的示例 运行 Windows 10 能够从 iOS 或 Android 而无需在 Windows 中逐步使用内置蓝牙 10. 我想知道如何纠正错误。

我知道有命令行蓝牙,但在 gui 中单击一个按钮并使用 32Feet.net 传输文件会很好。

看起来问题是因为设备 https://archive.codeplex.com/?p=32feet

上的服务 运行

您确定您正在使用的设备具有 SerialPort 配置文件 运行?

此外,您能否尝试使用以下代码

private void BluetoothClientConnectCallback(IAsyncResult ar)
{
    // Write your Call Back Code here
}

 static void Main(string[] args)
    {
        BluetoothClient client = new BluetoothClient();
        
        AllDevices = client.DiscoverDevicesInRange();
        foreach (BluetoothDeviceInfo Device in AllDevices)
        {
            if (Device.DeviceName.Equals("moto g(6)"))
            {
                if (!client.Connected)
                    client = new BluetoothClient();
                client.BeginConnect(Device.DeviceAddress, Device.InstalledServices[0], this.BluetoothClientConnectCallback, client);
                break;
            }
        }
        client.Close();
    }

此外,您必须在连接前配对您的设备。检查 here

BluetoothSecurity.PairRequest(Device.DeviceAddress,"123456");