Как подключиться к серверу bluetooth и найти сервис? - PullRequest
1 голос
/ 03 октября 2019

Не могу подключиться к своему bluetooth-серверу, настроен на rpi. Мне понадобится connectionUrl, предположительно извлеченный из ServiceRecord. Но я не могу заставить его работать.

Я настроил его, используя bluecove, и у меня работает сервер, который можно обнаружить. Однако я не могу найти какие-либо услуги на устройстве. Сервер:

UUID uuid = new UUID("446118f08b1e11e29e960800200c9a66", false);
String connectionString = "btspp://localhost:" + uuid + ";name=Mine";
StreamConnectionNotifier streamConnNotifier = (StreamConnectionNotifier) Connector.open(connectionString);

Клиент:

UUID[] uuidSet = new UUID[1];
uuidSet[0] = new UUID("446118f08b1e11e29e960800200c9a66", false);
agent.searchServices(null, uuidSet, remoteDevice, client);

public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
System.out.println("service discovered");

Но служба не обнаружена. Если я, на сервере, сделаю следующее:

ServiceRecord sr = local.getRecord(streamConnNotifier);
System.out.println(sr);

.. среди прочего, я вижу:

0x1:
    DATSEQ {
UUID 446118f08b1e11e29e960800200c9a66
UUID 0000110100001000800000805f9b34fb
}

Я бы предположил, что я мог бы подключиться к службе через URLbtspp: // b827ebe97e0e: 446118f08b1e11e29e960800200c9a66, но я не могу, я получаю IllegalArgumentException: channel 446118f08b1e11e29e960800200c9a66

1 Ответ

0 голосов
/ 07 октября 2019

Кто-нибудь? Я использую Java, и сервер настроен на Raspberry pi, а клиент - мой ноутбук MacBook.

Правильно ли использовать UUID в качестве «порта» (если мы говорили по http)?

...