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

时间:2016-04-05 13:00:00

标签: java windows bluetooth bluecove

我正在尝试从我的Windows PC连接到我的GPS运行手表(TomTom Runner 2),因为只有Android&支持通过蓝牙同步的iOS应用程序。 Windows需要使用USB-Cable,但我喜欢用BLTH做这个。

对于Linux,已经存在一个项目:https://github.com/dlenski/ttblue 但遗憾的是不适用于Windows。

我是Java的初学者,但已经使用Netbeans和BlueCove(http://bluecove.org/bluecove/apidocs/overview-summary.html)的官方代码示例获得了一些成功。 Java Code正在寻找附近的BLTH-Devices,而不是GPS-Watch。 但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 在java.library.path中加载[bluecove_x64] no bluecove_x64 我不知道问题是什么。

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

"libraries not available" On & Offline.

正如我所期望的(作为Java新手)在.jar中所有已经包含的内容。同样在Netbeans中,它查看.jar​​中的所有库。但最后这不是我的问题。

对不起,长篇文章......也许你们其中一个人可以给我一个提示。

谢谢和问候。

3 个答案:

答案 0 :(得分:3)

我认为这里至少有两个问题。我会回答那个我刚刚经历过自己搞清楚的麻烦的那个。 你的错误:

  

本机库bluecove_x64不可用线程" main" 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>

答案 1 :(得分:1)

有一个有效的实现作为2.1.1版本的fork 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);
        }
    }

答案 2 :(得分:0)

可以从下面的新链接下载JAR,我已将其用于x64 ---

bluecove-2.1.1.jar >> Download from the link