首先应用从LocalDevice的蓝牙管理中检索一个参考。而客户端应用程序向DiscoveryAgent取出一个参考,其中规定发现所有相关的服务。服务器应用程序使该设备被发现。在下面的代码段中通过初始化方法btinit()执行客户端和服务端的初始化:
...
并不是所有的应用服务在同一时间都充当服务器和客户端;角色的作用发挥取决于您的应用需求。服务器应用程序设置自己是能被发现的,而客户端应用程序获得一个参考,以代理服务发现。当您要设定设备的发现模式时调用LocalDevice.setDiscoverable(),您必须指定调查访问码( IAC )。
JABWT支持两种实现方式:
DiscoveryAgent.LIAC:
限制专用查询访问码。该设备将发现的只是在有限的时间内,通常为一分钟。有限的时间之后,该设备会自动归还undiscoverable模式。
DiscoveryAgent.GIAC:
通用查询访问码。指示一个无限制的搜索,无限制的是指不管多久,该设备仍留在发现模式。
迫使设备返回undiscoverable模式,只需调用Local-Device.set-
Discoverable()与DiscoveryAgent.NOT_DISCOVERABLE方法。
注:在幕后,蓝牙控制中心(BCC)担任中央权力机构为所有本地蓝牙进行设置。BCC让使用者能够界定和凌驾发现的模式和其他设置。BCC的存在也为了接受不断的申请,其目的是不影响他人。如需详细资讯,请参阅规格。
每当它发现一个有用的其他蓝牙设备,就可以打开连接,即使GIAC是通用调查访问码,但为了减少风险,您应该考虑只在必要时才设置设备为可发现,也许只有很短的时间,从而使用LIAC。密件抄送允许您禁用发现模式。
处理连接
在这篇文章的第1部分您已经熟悉了JABWT连接,它是逻辑链路控制和蓝牙协议栈中最底层协议( L2CAP ) ,低级别的数据包议定书的基础。我们认为,一个串行仿真协议L2CAP是支持Serial Port Profile(SPP) RFCOMM的 。 JABWT连接也是Generic Connection Framework (GCF)和由L2CAPConnection和StreamConnection类型分别代表的协议基础。第1部分我们也注意到,尽管L2CAPConnection推行的是JSR 82 , 但StreamConnection在连接有限设备配置( CLDC)中被界定为原javax.microedition.io GCF的一部分。