Android蓝牙功能及RFCOSDP简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

A n d r o i d2.0蓝牙功能及R F C O M M、S D P简介

一.Android2.0蓝牙功能简介

Google于2009年10月28日发布了AndroidSDK2.0版本。对于开发人员来说,

最关心的莫过于新版本添加了哪些新特性,API有哪些改动。2.0版本发布前,最受

关注的就是能否在新版本中添加蓝牙功能。Google果然不负众望,在2.0版本中加

入了蓝牙功能,使Android平台功能更加强大。蓝牙模块实现了以下功能:

•蓝牙的打开/关闭。

•设备和服务的探索。

•使用RFCOMM连接远程设备发送/接收数据。

•公布RFCOMM服务和监听接入的RFCOMM连接。

新版本添加了android.bluetooth包。该包提供了一些用于管理蓝牙设备的功能类。蓝牙的APIs允许应用程序连接或断开headset(头戴式耳机),扫描其他蓝牙设备并与之配对。增强了写和修改本地服务发现协议(ServiceDiscoveryProtocol,SDP)数据库,查询其他蓝牙设备SDP数据库,在Android上建立RFCOMM通道/Socket,连接到其他设备指定Socket的控制。

注意:不是所有的Android设备都能保证有蓝牙功能。

下面是android.bluetooth包中类的简述:

Android蓝牙模型原理及设备之间的连接已再【eoeAndroid特刊】第六期中有所说明,在此不做赘述。详情请参见【eoeAndroid特刊】第六期4-6节。

二.协议简述

蓝牙规范(SpecificationoftheBluetoothSystem)就是蓝牙无线通信协议标准,它规定了蓝牙应用产品应遵循的标准和需要达到的要求。蓝牙协议规范遵循开放系

统互连参考模型(OpenSystemInterconnetion/ReferencedModel,OSI/RM),从低到高地定义了蓝牙协议堆栈的各个层次。

在蓝牙规范中,中介协议是为高层应用协议或程序在蓝牙逻辑链路上工作提供了必要的支持,为应用曾提供了各种不同的标准接口。这部分协议包括RFCOMM、SDP、IrDA、(PPP/IP/TCP/UDP)、(TCS/AT)等。

2.1串口仿真协议(RFCOMM)

基于欧洲电信标准化协会(EuropeanTelecommunicationStandardizationInstitute,ETSI)的TS07.10标准制定。该协议用于模拟串行接口环境,使得基于串口的传统应用仅作少量的修改或者不做任何修改可以直接在该层上运行。

通过提供串行端口仿真,RFCOMM可以同时支持遗留串行端口应用程序以及其它应用程序中的OBEX协议。RFCOMM是ETSITS07.10标准的一个子集,也具有一些蓝牙特定的适配性。

RFCOMM协议能在两台蓝牙设备之间同时维持多达60个连接。蓝牙设备中同时使用的连接数目取决于特定实施。

由于有了RFCOMM,完整的通信路径包括两个运行在不同设备(通信端点)上的应用程序及它们之间的通信段。上图显示了完整的通信路径

RFCOMM旨在覆盖利用串行端口设备的应用程序。在简单的配置中,通信段是一个设备至另一设置之间(直接连接)的蓝牙链路,参见下图。当通信段为另一网络时,蓝牙无线技术可作为设备和网络连接设备(例如调制解调器)之间的路径。RFCOMM 仅与直接连接设备或网络环境中的设备和调制解调器之间的连接有关。

2.2服务发现协议(ServiceDiscoveryProtocol,SDP)

为实现蓝牙设备之间相互查询及访问对方提供的服务。服务发现应用是一个特定的由用户发起的应用。服务发现工作与两个在蓝牙设备中的SDP实例交互,其目

的是使用某个特定的传输服务(RFCOMM)或者特定的用途(文件传输、无线电话、LANAP等)。

SDP直接支持以下几种服务查询:

1).通过服务类进行服务查询;

2).通过服务属性对服务进行查询;

3).服务浏览。

一般的服务发现应用都被以上的三种服务查询所覆盖。其中前两个代表了查询已知或者指定的服务,并对类似“服务A是否有效?”或者“具有B和C特性的服务A是否有效?”的问题作出了回答。后面的服务浏览代表了另外一种服务查询,对类似“有效的服务有哪些?”或者“有效的类型A的服务有哪些”的问题给出解答。

上面的服务查询段落可以被实现为两种方式:

1).用户有意识地连接到某个设备,并查找这个设备上的服务;

2).通过无意识地连接本地设备周围的设备,并执行服务查询。

这两种实现方式都需要设备首先被发现、被连接、被查询它们所支持的服务。

相关文档
最新文档