java - 如何连接到蓝牙服务器并发现服务?
问题描述
我无法连接到我的蓝牙服务器,在 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
}
我想我可以通过 url btspp://b827ebe97e0e:446118f08b1e11e29e960800200c9a66 连接到该服务,但我不能,我明白了IllegalArgumentException: channel 446118f08b1e11e29e960800200c9a66
解决方案
任何人?我使用java,服务器设置在树莓派上,客户端是我的macbook笔记本电脑。
我将 UUID 用作“端口”是否正确(如果我们在谈论 http)?
推荐阅读
- javascript - 从列表中删除元素,并检查多个列表——什么是实现的好方法?
- r - 查询 Oracle 11.1 时出现 JDBC 错误 (ORA-00933)
- android - 无法使用实现“androidx.room:room-rxjava2:2.1.0”解析 AndroidSchedulers.mainThread() 上的符号“AndroidSchedulers”
- python - OpenCV 不会显示 IP 摄像机源,尽管它显示在浏览器中
- entity-framework - 始终加密 EF CORE
- javascript - 将 Javascript 添加到向下箭头按钮以打开和关闭子菜单
- r - 如何在 R 中用折线图覆盖条形图?
- vue.js - 如何在 IntelliJ 中应用 App.vue 扩展
- python - 用于在分隔符内捕获文本的 Python 解析器组合器
- android - 在 Android 上解密使用 EncryptedFile 加密的文件时出现问题