gpt4 book ai didi

java - 蓝湾 : check if device is paired?

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:59 24 4
gpt4 key购买 nike

我刚开始使用 Bluecove API,似乎经过大量研究后,我仍然找不到方法来检查 RemoteDevice 是否已与正在运行的计算机配对。

首先,我成功地开始扫描,但是,我发现奇怪的是 Bluecove 没有提供仅查找处于可发现模式的设备的方法,因此需要检查是否已配对...

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

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

总而言之:

  1. 如何仅扫描处于发现模式的设备?
  2. 如何查明设备是否已配对?

注意:无论配对状态如何,同时使用 RemoteDevice.isAuthenticated()RemoteDeviceHelper.implIsAuthenticated(remoteDevice) 始终返回 false

注2:此外,查看 http://bluecove.googlecode.com/svn/trunk/bluecove/src/main/java/com/intel/bluetooth/RemoteDeviceHelper.java 中的 RemoteDeviceHelper.java ,有一个 boolean 配对的私有(private)属性。

似乎没有公共(public)方法会使用它 ...

更奇怪和令人沮丧的是,在调试器模式下,查看特定的 RemoteDevice,我可以看到此属性的值。当设备未配对时,它确实为 false;如果设备已配对,则为 true! 那么为什么 API 不能告诉我呢?

我该怎么办?感谢您的帮助!

最佳答案

配对设备列表:

import javax.bluetooth.*
...
RemoteDevice[] rdList = LocalDevice.getLocalDevice().getDiscoveryAgent().retrieveDevices(DiscoveryAgent.PREKNOWN);

获取配对设备的名称和地址:

rdList[0].getBlueToothAddress();
rdList[0].getFriendlyName(true);

一些评论:

  1. 配对设备列表可以包含多个具有相同名称的设备
  2. getFriendlyName() 的 boolean 参数表示代理是否应该查询设备的名称,但如果设备不可用则返回缓存的名称(至少我的测试表明)

关于java - 蓝湾 : check if device is paired?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28740810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com