错误10049连接蓝牙设备与32英尺



我试图在不使用COM端口的情况下与自定义蓝牙设备建立连接。然而,我得到一个错误:[10049]"请求的地址在其上下文中无效"。我做错了什么?

static Guid serviceClass= new Guid("4d36e978-e325-11ce-bfc1-08002be10318"); //GUID of device class
static BluetoothAddress addr = BluetoothAddress.Parse("001210160177"); //from device            
BluetoothDeviceInfo device = new BluetoothDeviceInfo(addr); 
device.SetServiceState(serviceClass, true);
Console.WriteLine(BluetoothSecurity.PairRequest(device.DeviceAddress, "0000")); //pairing my device - writes True
BluetoothEndPoint ep = new BluetoothEndPoint(addr, serviceClass);
BluetoothClient conn = new BluetoothClient(ep); //10049 error
conn.Connect(ep);
Console.WriteLine(conn.GetStream());

这些都包含在项目文档中。: -)

简而言之,删除SetServiceState行,它是不必要的/坏的。每次进行配对也是不必要的,而且有点慢,但如果它运行良好,可能不值得更改。

文档:http://32feet.codeplex.com/documentation

1)

  • "请参阅下面的通用蓝牙数据连接。BluetoothClient提供流来读写——没有必要使用虚拟COM端口"
http://32feet.codeplex.com/wikipage?title=General%20Bluetooth%20Data%20Connections

2)

BluetoothAddress addr
  = BluetoothAddress.Parse("001122334455");
Guid serviceClass;
serviceClass = BluetoothService.SerialPort;
// - or - etc
// serviceClass = MyConsts.MyServiceUuid
//
var ep = new BluetoothEndPoint(addr, serviceClass);
var cli = new BluetoothClient();
cli.Connect(ep);
Stream peerStream = cli.GetStream();
peerStream.Write/Read ...

3) http://32feet.codeplex.com/wikipage?title=Errors

  • 10049"请求的地址在其上下文中无效。"
  • 没有具有给定服务分类Id的服务在远程设备上运行

。服务分类Id错误。

最后是这样的。

device.SetServiceState(serviceClass, true); //do it before pairing
...
BluetoothClient conn = new BluetoothClient(); 
conn.Connect(ep);

还有,我的错误在这里:

static Guid serviceClass = new Guid("4d36e978-e325-11ce-bfc1-08002be10318"); 
//GUID of device class
应:

static Guid serviceClass = new Guid("00001101-0000-1000-8000-00805f9b34fb"); 
//GUID of bluetooth service

要查看正确的GUID,请参考您的设备(不是加密狗)的设置/属性。你可以在Windows上看到它们

相关内容

  • 没有找到相关文章

最新更新