0

我无法让我的 java 应用程序连接到特定的蓝牙设备。该设备是一个自建的东西,工作正常。到目前为止,我的应用程序使用串行端口连接到设备,效果很好。不好的是我无法自动检测设备连接到哪个 COM 端口。因此,用户必须在设备管理器中查找并手动输入。几周后,我编写了一个连接到同一设备的安卓应用程序。这使用了直接的蓝牙连接,并且一切运行良好,以至于我想在我的桌面应用程序中使用 bluecove 库进行尝试(仅仅是因为它是免费的,而且似乎是我需要的)。

我能够发现设备、发现服务并从该服务中检索 url。到目前为止一切顺利,但是当我尝试根据我在网上找到的几个示例打开连接时,它总是在Connector.open(url)我的代码部分给我一个 BluetoothConnectionException:

String url = service.getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
// url = "btspp://001203280265:1;authenticate=false;encrypt=false;master=false";
StreamConnection conn = (StreamConnection) Connector.open(url);

例外情况如下:

javax.bluetooth.BluetoothConnectionException: Failed to connect; [10051] Ein Socketvorgang bezog sich auf ein nicht verfügbares Netzwerk.
// translation: A socket operation was attempted to an unreachable network. This usually means the local software knows no route to reach the remote host.
at com.intel.bluetooth.BluetoothStackMicrosoft.connect(Native Method)
at com.intel.bluetooth.BluetoothStackMicrosoft.access$700(BluetoothStackMicrosoft.java:44)
at com.intel.bluetooth.BluetoothStackMicrosoft$ConnectThread.run(BluetoothStackMicrosoft.java:651)

我不知道为什么会发生此异常以及如何修复它。(这也是我不提供更多代码的原因——我根本不知道在哪里寻找错误。)

这是在带有 Bluecove 2.1.1 (63) 最新快照的 Windows 7 64 位机器上运行的。

如果您知道如何处理此问题,我将非常感谢任何有用的评论和答案!

4

0 回答 0