我是使用Bluecove API
的新手,似乎在经过大量研究之后,我仍然无法找到一种方法来检查RemoteDevice
是否已经与正在运行的机器配对。
首先,我成功地设法开始扫描,但我发现奇怪的是Bluecove
没有提供只查找处于可发现模式的设备的方法因此需要检查是否配对...
为了更加精明,我正在“翻译”我使用InTheHand.dll
在C#中开发的项目进行蓝牙管理。这个组件很棒,帮助我实现了我想要做的事情:扫描可发现模式和范围内的设备,启动配对过程,通过Bluetooth streams
处理数据。
我需要使用Bluecove 做同样的事情。
为什么找到答案很难?该文档几乎没有说配对,虽然我设法配对我知道没有通过RemoteDevice.authenticate()
配对的设备。
无论如何要总结:
注意:
无论配对状态如何,使用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 paired
有一个私人财产。
似乎没有公共方法会使用它 ...
在调试器模式下,查看特定的RemoteDevice
,甚至更奇怪,更令人沮丧,我可以看到这个属性的值。当设备未配对时确实是错误的,如果设备配对,则确实如此! 那么为什么API不能这么说呢?
我该怎么办?谢谢你的帮助!
答案 0 :(得分:1)
配对设备列表:
import javax.bluetooth.*
...
RemoteDevice[] rdList = LocalDevice.getLocalDevice().getDiscoveryAgent().retrieveDevices(DiscoveryAgent.PREKNOWN);
获取名称&配对设备的地址:
rdList[0].getBlueToothAddress();
rdList[0].getFriendlyName(true);
一些意见: