分享
 
 
 

使用Java蓝牙无线通讯技术API(第一部分 -API概览)(2)

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

数据元素类

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

强制性属性是在注册一个服务之后被自动设定的。这些属性包括: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的实例代表了一个远端蓝牙设备。在一个蓝牙客户端应用程序可以进行服务,消费之前,它必须发送一个设备请求来发现远端设备。典型的蓝牙应用程序和远端设备之间的关系是一对多:

图 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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有