Java BlueCove 未发现所有设备,Windows 10 x64

Kin*_*gPo 5 java windows bluetooth bluecove

我正在尝试从我的 Windows PC 连接到我的 GPS-Running 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 手表。但是 GPS-Watch 本身对其他设备(Android 手机、Microsoft Windows)同时可见,在运行 Java 代码的同一系统上的 Windows 设置中也可见。

我现在有点挣扎,为什么 BlueCove 没有找到设备,如果硬件能够找到?

我已经想到这是否与 BLTH-Stack 相关。默认使用 Winsock。使用:System.setProperty(BlueCoveConfigProperties.PROPERTY_STACK, "widcomm");

结果:本机库 bluecove_x64 不可用线程“main”中的异常 javax.bluetooth.BluetoothStateException:BlueCove 库 bluecove 不可用;资源未找到 bluecove_x64.dll load [bluecove_x64] no bluecove_x64 in java.library.path 我不确定问题是什么。

为了确保它(或不)与 BLTH-Stack 相关,我尝试了 Bluecove 的测试程序(bluecove-tester-app.jar - http://bluecove.org/bluecove-examples/bluecove-tester/)我'我可以启动,但是在选择 Discovery 时会导致错误:

"libraries not available" On & Offline.
Run Code Online (Sandbox Code Playgroud)

只是想知道 .jar 中的所有内容都已包含在我的预期中(作为 Java 新手)。同样在 Netbeans 中,它查找 .jar 中的所有库。但最后这不是我的问题。

抱歉,文字太长了...也许你们中的一个可以给我一个提示。

感谢致敬。

Alb*_*oto 5

有一个有效的实现作为 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);
        }
    }
Run Code Online (Sandbox Code Playgroud)


小智 2

我认为这里至少有两个问题。我将回答我刚刚经历过自己解决这个问题的麻烦。你的错误:

本机库 bluecove_x64 不可用线程“主”javax.bluetooth.BluetoothStateException 中出现异常:BlueCove 库 bluecove 不可用;找不到资源 bluecove_x64.dll 加载 [bluecove_x64] java.library.path 中没有 bluecove_x64

是因为 BlueCove 的最后一个官方版本仅是 32 位。您需要下载最新的“快照”版本。

至少有三种方法可以修复此错误。

您可以安装 32 位版本的 JDK/JRE 并使您的项目成为 32 位。

您可以直接从此处下载最新的 64 位 JAR: http://snapshot.bluecove.org/distribution/download/2.1.1-SNAPSHOT/2.1.1-SNAPSHOT.63/

或者,如果您是 Maven 用户,请将其添加到您的 POM 文件中以获取最新的 64 位 JAR

<repositories>
  <!-- Bluetooth Snapshots Repo -->
  <repository>
    <id>pyx4j-web-snapshot</id>
    <url>http://repository.pyx4j.com/maven2-snapshot</url>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
    <releases>
      <enabled>false</enabled>
    </releases>
  </repository>
</repositories>

<dependencies>
  <!-- Bluetooth connection -->
  <dependency>
    <groupId>net.sf.bluecove</groupId>
    <artifactId>bluecove</artifactId>
    <version>2.1.1-SNAPSHOT</version>
  </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)