如何为Classic SPP连接URI确定BlueCove通道标识符?

时间:2018-02-06 23:43:35

标签: java bluetooth bluecove

我有两个使用JSR 82的java程序(由bluecove 2.1.x实现)在两台Windows机器之间进行通信。一个实现服务器端,一个是客户端。一切都运作良好的大部分时间。我可以成功发现,阅读和写作等。几乎没有问题。

当我尝试优化连接过程时出现问题。作为优化,我让客户端记录发现的连接URL,以便它可以在后续连接中缓存和重用(例如,在机器通过电源循环之后)。网址看起来像这样:

  

btspp:// 1C4D89CB4921:1;认证= TRUE;加密= TRUE;主=假

这些网址通常是通过蓝牙发现流程获得的,客户端通过该流程查询服务器。产生网址的具体api是query。 通常我可以重复使用这样的URL,并绕过发现过程可靠地重新连接到原始服务器。但在某些条件下(我不知道它们是什么),服务器的频道标识符可能会发生变化。我在下面的示例网址中突出显示了频道标识符。

  

btspp:// 1C4D89CB4921: 1 ;认证= TRUE;加密= TRUE;主=假

根据我的经验,通道标识符 1 几乎总是如此。但不总是。即使通过我控制服务器代码以及客户端,据我所知,我也无法控制频道号码。

所以我的问题是:有没有办法控制(或预测)频道号码,最好只使用JSR-82?或者更一般地说,为什么我们首先需要通道号以及bluecove 2.1.x实现如何选择它们。

0 个答案:

没有答案