Установить соединение Bluetooth между приложением J2ME и настольным приложением, написанным на Python (предпочтительно с использованием pybluez)? - PullRequest
1 голос
/ 26 августа 2010

Я пытаюсь установить соединение 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))

Однако в JSR-082 bluetoothAPI, способ создания сервера выглядит следующим образом:

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 Ответ

1 голос
/ 04 января 2011

Используя JSR-82, вы создаете сервер на основе UUID. Вам необходимо выполнить поиск SDP, чтобы определить «порт» (фактически, номер канала для RFCOMM или PSM для L2CAP) удаленной службы. Таким образом, в pybluez вы должны позвонить bluetooth.find_service() (как показано здесь ), изучить каждую из возвращенных служб и выбрать одну с соответствующим UUID ("идентификатор службы" в bluez).

...