我正在尝试从我的 Windows PC 连接到我的 GPS 运行 watch (TomTom Runner 2),因为只有 Android 和 iOS 应用程序支持通过蓝牙同步。 Windows 需要使用 USB 数据线,但我喜欢使用 BLTH。
对于 Linux,已经存在一个项目:https://github.com/dlenski/ttblue 但遗憾的是不适用于 Windows。
我是 Java 的初学者,但已经通过 Netbeans 和来自 BlueCove (http://bluecove.org/bluecove/apidocs/overview-summary.html) 的官方代码示例取得了一些成功。 Java 代码在附近找到 BLTH 设备,但没有找到 GPS watch 。 但 GPS-Watch 本身对其他设备(Android 手机、Microsoft Windows)同时可见,在运行 Java 代码的同一系统上的 Windows 设置中也可见。
我现在有点困惑,为什么 BlueCove 找不到设备,即使硬件能够找到?
我已经想到这是否与 BLTH-Stack 有关。 默认情况下使用 Winsock。 使用:System.setProperty(BlueCoveConfigProperties.PROPERTY_STACK, "widcomm");
结果: native 库 bluecove_x64 不可用 线程“main”中的异常 javax.bluetooth.BluetoothStateException:BlueCove 库 bluecove 不可用; 未找到资源 bluecove_x64.dll 在 java.library.path 中加载 [bluecove_x64] no bluecove_x64 我是对的,不确定问题出在哪里。
为了确定它(或不)与 BLTH-Stack 相关,我尝试了 Bluecove 的测试程序(bluecove-tester-app.jar - http://bluecove.org/bluecove-examples/bluecove-tester/) 我能够开始,但在选择 Discovery 时会导致错误:
"libraries not available" On & Offline.
只是想知道是否如我所料(作为 Java 新手)在一个 .jar 中,所有内容都已包含在内。同样在 Netbeans 中,它会查找 .jar 中的所有库。但最终这不是我的问题。
抱歉,文字很长...也许你们中的一个人可以给我一个提示。
感谢和问候。
最佳答案
有一个有效的实现作为 2.1.1 版本的分支 https://mvnrepository.com/artifact/io.ultreia/bluecove/2.1.1
很难找到。 希望它有效。
@DisplayName("Bluetooth device test")
@Test
void discoverDevices() {
try {
LocalDevice dev = LocalDevice.getLocalDevice();
String mac = dev.getBluetoothAddress();
System.out.println("Address:" + mac);
DiscoveryAgent agent = dev.getDiscoveryAgent();
System.out.println(dev.getFriendlyName());
} catch (Exception e) {
log.error("MEK", e);
}
}
关于Java BlueCove 未发现所有设备,Windows 10 x64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36427088/