11 


使用蓝牙和 OBEX API

Sun JavaTM Wireless Toolkit for CLDC 仿真器支持 Java APIs for Bluetooth (JSR 82)。该仿真器完全符合 1.1 版规范,该规范描述了与推送注册表的集成。JSR 82 包括两个独立的 API:

本章介绍 Sun JavaTM Wireless Toolkit for CLDC 实现蓝牙和 OBEX API 的方法。


11.1 蓝牙模拟环境

用户可使用 Sun JavaTM Wireless Toolkit for CLDC 仿真器在没有实际蓝牙硬件的情况下,开发并测试使用蓝牙的应用程序。该工具包模拟运行仿真器的蓝牙环境。多个仿真器实例之间能通过蓝牙 API 互相搜索并交换数据。

有关示例,请参见附录 A 中的 BluetoothDemo 文档。


11.2 OBEX 红外传输

Sun JavaTM Wireless Toolkit for CLDC 通过模拟的蓝牙和红外连接来实现 OBEX 传输。模拟红外连接遵循 IrDA 标准(请参见 http://www.irda.org/)。可以在多个运行的仿真器之间进行模拟的红外传输。


11.3 设置 OBEX 和蓝牙首选项

用户可在 Sun JavaTM Wireless Toolkit for CLDC 中配置蓝牙和OBEX 模拟环境。选择“编辑”>“首选项”,然后选择“蓝牙/OBEX”以显示以下窗口。

图 11-1 蓝牙和 OBEX 首选项

“蓝牙/OBEX”首选项并选择了蓝牙的“内部特性”选项卡

11.3.1 OBEX 首选项

使用 IrDA 的设备在真实世界中通过侦听来搜索其他设备。用户可使用首选项窗口 "IrDA OBEX" 部分的“搜索超时”字段来配置 Sun JavaTM Wireless Toolkit for CLDC 仿真器搜索其他设备需等待的时间。输入以毫秒为单位的值。

在 API 级别,搜索超时值决定在调用返回或抛出异常之前,调用 Connector.open("irdaobex://discover...") 所阻塞的时间。

最大包长度将影响仿真器之间每个包中发送的数据量。包的长度越短,所需的包数就越多,等待处理的包也就越多。

11.3.2 蓝牙内部特性

在首选项窗口的“蓝牙”部分中,“设备搜索超时”指尝试查找模拟蓝牙环境中的其他设备时仿真器所等待的时间,以毫秒为单位。

“下一个仿真器的蓝牙地址”是指将指定给第一个仿真器实例的蓝牙地址。仿真器的后续实例将收到自动生成的地址。

11.3.3 蓝牙系统特性

首选项窗口“蓝牙”部分的“系统特性”选项卡包含可使用 javax.bluetooth.LocalDevice 中的 getProperty() 方法在应用程序中检索的特性。

JSR 82 规范对蓝牙特性进行了全面介绍。

11.3.4 蓝牙 BCC 特性

蓝牙控制中心 (Bluetooth Control Center, BCC) 用于控制蓝牙设置。有些设备可能会提供 GUI(图形用户界面)来自定义蓝牙设置。在 Sun JavaTM Wireless Toolkit for CLDC 中,BCC 是使用“蓝牙”首选项的“BBC 特性”选项卡配置的。特性如下:


表 11-1 BCC 特性

特性

描述

启用蓝牙支持

如果禁用该特性,LocalDevice.getLocalDevice() 会抛出 BluetoothStateException,并且无法创建任何连接。这用于测试支持 JSR 82 但可能已关闭蓝牙功能的设备上应用程序的性能。

设备可搜索

指示其他仿真器是否可搜索到该仿真器。

友好名称

模拟蓝牙环境中用户可读的仿真器名称。如果名称保留为空,则仿真器不支持“友好名称”功能。

加密

该特性决定连接加密是否受支持(支持则为 on,不支持则为 off)。此外,force 设置表示所有连接均必须经过加密。有关详细信息,请参见 RemoteDeviceencrypt() 方法的文档。

授权

与“加密”特性类似。请参见 RemoteDeviceauthorize() 方法。

验证

与“加密”和“授权”特性类似。请参见 RemoteDeviceauthenticate() 方法。