Установить соединение Bluetooth между приложением J2ME и настольным приложением, написанным на Python (предпочтительно с использованием pybluez)?
Я пытаюсь установить соединение Bluetooth между моим приложением J2ME (используя API-интерфейс JSR-082) и настольным приложением, написанным на Python (используя API-интерфейс pybluez bluetooth). Однако я не смог найти подходящих протоколов связи Bluetooth для их сопряжения.
В pybluez способ подключения к серверу выглядит следующим образом:
addr, port = "01:23:45:67:89:AB", 1
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((addr, port))
Однако в API-интерфейсе Bluetooth JSR-082 способ создания сервера выглядит следующим образом:
StreamConnectionNotifier connectionNotifier =
(StreamConnectionNotifier) Connector.open("btspp://localhost:" +
"0000000000000000000000000000ABCD;name=JSR82_ExampleService");
streamConnection = connectionNotifier.acceptAndOpen();
или следующим образом:
L2CAPConnectionNotifier connectionNotifier =
(L2CAPConnectionNotifier) Connector.open("btl2cap://localhost:" +
"0000000000000000000000000000ABCD;name=JSR82_ExampleService");
streamConnection = connectionNotifier.acceptAndOpen();
В API Pybluez мы используем номера портов, а в API JSR-082 мы используем URL-адреса. Как я собираюсь установить соединение Bluetooth тогда? Есть ли способ создать сервер, используя номер порта в API JSR-082?
1 ответ
Используя JSR-82, вы создаете сервер на основе UUID. Вам необходимо выполнить поиск SDP, чтобы определить "порт" (фактически, номер канала для RFCOMM или PSM для L2CAP) удаленной службы. Итак, в Pybluez, вы бы позвонили bluetooth.find_service()
(как показано здесь), проверьте каждую из возвращенных служб и выберите одну с соответствующим UUID ("идентификатор службы" в bluez).