选择显示字体大小

使用java蓝牙无线通讯技术api概述之二

一个服务可以有许多的属性,一些是强制性的,其他的是可选的。一个服务属性由一个数据元素对象来表现,这个数据元素对象提供了设置并取得属性值的方法。

强制性属性是在注册一个<-- copyright 1999-2000 thruport technologies http://www.thruport.com --><-- end dynamic banner insert -->服务之后被自动设定的。这些属性包括:servicerecordhandle,serviceclassidlist,servicerecordstate,serviceid,还有protocoldescriptorlist。

如果你想要的话,还可以设置可选属性。可选属性有很多,但是有三个值得关注:servicename,servicedescription,和providername。想得到更多的关于这些属性的信息,请参看jabwt的文档或蓝牙规范。

设备管理api

有3个主要的类来支持设备管理:

.localdevice

.remotedevice

.deviceclass

本地设备类localdevice类标识了本地蓝牙设备。蓝牙应用程序和localdevice之间的关系是典型的一对一关系:



图 10:本地设备类


本地设备提供了方法来返回关于本地设备的信息,并且能够进入bluetooth manager:

.getbluetoothaddress()返回蓝牙设备地址。

.getdeviceclass()返回设备类。

.getfriendlyname()返回设备友好名称,蓝牙设备名通常是用户在蓝牙控制中心为其设置的我们将会在后面看到。

.getrecord()返回一个指定蓝牙连接的服务记录。

.updaterecord()方法用来为指定的servicerecord更新sddb服务记录。

.getdiscoverable()返回设备的可发现状态。

.setdiscoverable()设置设备的可发现状态。

.getdiscoveryagent()返回一个参考给发现代理。

.getproperty()返回一个设备的蓝牙属性。

通过调用getproperty()方法你可以得到的属性包括:

.bluetooth.api.version,蓝牙api版本

.bluetooth.sd.attr.retrievable.max,一次性能够被获得的服务记录属性的最大值

.bluetooth.connected.devices.max,支持的连接设备的最大值

.bluetooth.sd.trans.max,同时发生的服务发现处理的最大值

.bluetooth.l2cap.receivemtu.max,l2cap最大发射单元

你可以在javadoc文档中或是规范中学习更多的有关蓝牙属性的内容。
远端设备类

一个remotedevice的实例代表了一个远端蓝牙设备。在一个蓝牙客户端应用程序可以进行服务,消费之前,它必须发送一个设备请求来发现远端设备。典型的蓝牙应用程序和远端设备之间的关系是<-- copyright 1999-2000 thruport technologies http://www.thruport.com --><-- end dynamic banner insert -->一对多:



图 11: 远端设备类


远端设备(remotedevice)提供的方法中,有些很类似于本地设备(localdevice)里提供的方法:

.getbluetoothaddress()返回蓝牙地址。

.getfriendlyname()返回蓝牙设备名。

.getremotedevice()返回相应的被指定蓝牙连接的远端设备。

.authenticate()尝试识别验证远端设备。

.authorize()为指定的蓝牙连接去尝试批准远端设备访问本地设备。

.encrypt()尝试为指定的蓝牙连接开启或关闭加密

.isauthenticated()测试是否远端设备可以被验证。

.isauthorized()测试是否远端设备已经被蓝牙控制中心授权访问本地设备以进行蓝牙连接。

.isencrypted()测试是否本地设备和远端设备之间的通信被加密

.istrusteddevice()测试是否远端设备被蓝牙控制中心指定为可信任的。

deviceclass类一个deviceclass对象代表一个设备的设备类(cod),例如一个打印机或者一部电话。cod包括一个主类,一个辅的类,和服务类型或服务类。deviceclass提供了如下方法:

.getmajordeviceclass()方法获取设备的主类。

.getminordeviceclass()方法获取设备的辅类。

.getserviceclasses()获取设备的服务类。

当一个设备被发现,同时他的类也会被发现;当发现代理调用devicediscovered()时,其中一个参数就是deviceclass。你可以通过它的getdeviceclass()方法找到本地设备的cod。

蓝牙通信

jabwt连接是基于逻辑链路及适配层协议的。l2cap是一个低级协议用来管理数据包,直到达到64k。l2cap中的处理细节像消息分割和重组(sar),多路连接。另外,串口profile(spp)提供rfcomm,一个通过l2cap层的串行模拟协议。

l2cap和rfcomm连接都是基于通用连接框架(gcf)的,直接通向接口和类的层次去创建连接和执行io命令。jabwt依靠l2cap和rfcomm协议扩展了通用连接框架(gcf)以分别支持通过l2capconnection 和streamconnection类型连接。

就在l2capconnection被jsr 82介绍的同时,streamconnection在原始的javax.microedition.io的gcf中被定义了,它是依靠cldc发展来的。注意,jabwt中l2capconnection仅支持面向连接的l2cap连接。图12显示了以基于gcf形式的各接口通过蓝牙网络进行通信的过程:



图 12: 通用连接框架和蓝牙连接类型


层次定义了l2cap和stream的连接和连接通知器。一个连接定义了一个连接终端,当一个连接通知器执行了服务行为时,它会等待并接受l2cap连接处理。

处理l2cap连接比处理流连接更复杂。使用l2cap时,开发者们必须处理好最大消息的大小(即最大传输单位,或叫做mtu)、打断和重组等。这些复杂的事项在开发者使用流连接的时候被隐藏了,以使他们处理蓝牙连通时获得更好的效率。

如同所有的gcf连接类型,你可以通过调用gcf连接工厂方法javax.microedition.io.connector创建蓝牙连接。传递给connector()方法的连接url决定了要创建的连接类型:一个l2capconnection连接的url格式:

btspp://hostname:[cn  uuid];parameters


一个rfcommstreamconnection连接的url格式:

btspp://hostname:[cn  uuid];parameters

细节介绍:

.btl2cap 是为l2capconnection设计的url配置方案。

.btspp是为rfcomm streamconnection的url配置方案。
<-- copyright 1999-2000 thruport technologies http://www.thruport.com --><-- end dynamic banner insert -->
.hostname 既可是localhost用于架设一个服务器连接,也可是一个用于创建客户端连接的蓝牙地址。

.psm是协议/服务多路复用值,在一个客户端连接服务器端时使用。在概念上是模拟一个tcp/ip端口。

.cn是信道数值,在一个客户端连接服务器端时使用,也是模拟tcp/ip端口。

.uuid是uuid(通用唯一标识符)值,在一个服务器上建立服务时使用。

.parameters(参数)包括描述服务名称的名字和有于安全的参数:验证、授权和加密服务器连接和客户端连接

在连接的url中,主机名称告诉连接工厂是否它应该创建一个客户端异或服务器端。如果使用单词localhost作为主机名将定义一个服务器连接。客户端想要连接到一个指定的的服务可以通过调用servicerecord.getconnectionurl()来找到该服务连接的url。

[1] [2]  下一页


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons