我正在使用Java Bluecove在我的电脑和远程蓝牙设备之间建立连接。
我使用DiscoveryListener
对象来发现设备上某个服务的URL
;然后我使用该字符串URL
作为Connector.open(URL)
的参数来打开连接,但我得到:
连接超时; [10060]连接尝试失败,因为 连接方在一段时间后没有正确回应,或者 建立的连接失败,因为连接的主机失败了 响应。
以下是我的程序中的两个片段。第一个搜索指定的服务集
UUID[] uuidSet = new UUID[1];
uuidSet[0] = new UUID(0x1101); //serial port
int[] attrIDs = new int[]{0x0100};
LocalDevice localDevice = LocalDevice.getLocalDevice();
DiscoveryAgent agent = localDevice.getDiscoveryAgent();
agent.searchServices(attrIDs, uuidSet, device, transport); //if the specified service is found its URL is print to screen; so I know it
以下代码用于建立连接。
String bt_addr = remDev.getBluetoothAddress(); //remDev is the remote device; I am sure it's the correct one
try {
connection = (StreamConnection) Connector.open("btspp://" + bt_addr + ":1;authenticate=false;encrypt=false;master=true;"); //HERE OCCURS THE TIMEOUT !
} catch (javax.bluetooth.BluetoothConnectionException e) {}
现在,可能是仪表上还有其他服务,但我只查找0x1101,这不是我用来连接的那个。但我不知道如何寻找不同的服务。