我正在尝试在我的J2ME应用程序(使用JSR-082api)和用Python编写的桌面应用程序(使用pybluez蓝牙API)之间建立蓝牙连接。但是,我找不到合适的蓝牙通信协议来配对它们。在
在pybluez中,连接到服务器的方式如下:
addr, port = "01:23:45:67:89:AB", 1
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((addr, port))
但是在JSR-082 bluetooth API中,创建服务器的方法如下:
^{pr2}$或如下:
L2CAPConnectionNotifier connectionNotifier =
(L2CAPConnectionNotifier) Connector.open("btl2cap://localhost:" +
"0000000000000000000000000000ABCD;name=JSR82_ExampleService");
streamConnection = connectionNotifier.acceptAndOpen();
在pybluezapi中我们使用端口号,在JSR-082api中我们使用url。那我该如何建立蓝牙连接呢?有没有一种方法可以使用JSR-082api中的端口号创建服务器?在
使用JSR-82,您可以基于UUID创建一个服务器。您需要执行SDP搜索来确定远程服务的“端口”(实际上是RFCOMM的信道号,或者L2CAP的PSM信道号)。因此,在pybluez中,您需要调用
bluetooth.find_service()
(如图here),检查返回的每个服务,并选择具有匹配UUID的服务(bluez中的“服务id”)。在相关问题 更多 >
编程相关推荐