Java Bluecove:检查设备是否配对?

Java Bluecove:检查设备是否配对?,java,bluetooth,bluecove,Java,Bluetooth,Bluecove,我对使用Bluecove-API很陌生,似乎经过大量研究,我仍然找不到一种方法来检查RemoteDevice是否已经与正在运行的机器配对 首先,我成功地启动了扫描,但是我发现很奇怪,Bluecove没有提供一种只查找处于可发现模式的设备的方法,因此需要检查设备是否配对 更准确地说,我正在“翻译”一个我用C语言开发的项目,使用in hand.dll进行蓝牙管理。这个组件很棒,帮助我实现了我想要做的:在可发现模式和范围内扫描设备,启动配对过程,通过蓝牙流处理数据。 我需要对Bluecove做同样的事

我对使用
Bluecove-API
很陌生,似乎经过大量研究,我仍然找不到一种方法来检查
RemoteDevice
是否已经与正在运行的机器配对

首先,我成功地启动了扫描,但是我发现很奇怪,
Bluecove
没有提供一种只查找处于可发现模式的设备的方法,因此需要检查设备是否配对

更准确地说,我正在“翻译”一个我用C语言开发的项目,使用
in hand.dll
进行蓝牙管理。这个组件很棒,帮助我实现了我想要做的:在可发现模式和范围内扫描设备,启动配对过程,通过
蓝牙流处理数据。
我需要对Bluecove做同样的事情

为什么很难找到答案?尽管我设法通过
RemoteDevice.authenticate()
配对了一个我知道没有配对的设备,但文档中几乎没有提到配对

总之:

  • 如何仅在发现模式下启动设备扫描
  • 如何确定设备是否已配对
  • 注: 同时使用
    RemoteDevice.isAuthenticated()
    RemoteDeviceHelper.implIsAuthenticated(RemoteDevice)
    始终返回
    false
    ,无论配对状态如何

    注2: 此外,从中查看
    RemoteDeviceHelper.java
    boolean paired
    有一个私有属性

    似乎没有公共方法会使用它

    在调试器模式下,查看特定的
    远程设备
    ,我甚至可以看到这个属性的值。当设备未配对时,它确实为假;如果设备配对,则为真那么为什么API不能告诉我呢?


    我该怎么办?谢谢你的帮助

    配对设备列表:

    import javax.bluetooth.*
    ...
    RemoteDevice[] rdList = LocalDevice.getLocalDevice().getDiscoveryAgent().retrieveDevices(DiscoveryAgent.PREKNOWN);
    
    获取配对设备的名称和地址:

    rdList[0].getBlueToothAddress();
    rdList[0].getFriendlyName(true);
    
    一些评论:

  • 配对设备列表可以包含具有相同名称的多个设备
  • getFriendlyName()的布尔参数表示代理是否应该查询设备的名称,但如果设备不可用,则返回缓存的名称(至少我的测试显示了这一点)