1.2 蓝牙技术
蓝牙是一种低功耗、中短距离的无线通信技术,为移动设备之间提供快速、方便的无线通信连接,被广泛应用于手机中,其中蓝牙耳机是一个典型的应用。蓝牙通信规范是全球统一的,工作频段为全球统一开放的2.4 GHz频段,该频段的使用无需向各国的无线电资源管理部门申请许可证。不同的蓝牙设备通信时,可以建立临时性的实时对等连接。皮网(Piconet)是蓝牙最基本的一种网络形式,通常由一个主设备(即主动发起连接请求的蓝牙设备)和几个从设备组成,能同时实现一对多的通信[7]。蓝牙技术的优点是:可以方便地建立无线连接;移植性强,适用面广;安全性较高;设备功耗低,成本较低;开发设计较简单。
1.3 安卓系统蓝牙编程
蓝牙技术的开发核心是根据蓝牙标准所实现的蓝牙协议栈。该协议栈包含了众多协议,主要有逻辑链路控制和适配协议(L2CAP)、服务发现协议(SDP)、串口模拟协议(RFCOMM)等。其中SDP协议是一个基于C/S结构的协议,是蓝牙协议栈中的核心协议。在蓝牙系统中,用户依靠SDP获取建立蓝牙连接所需的设备信息、服务信息及服务特征[8]。
Android SDK从2.0版本开始支持蓝牙功能,应用程序必须在AndroidManifest.xml文件中加入一定的权限才能使用蓝牙服务:android.permission.BLUETOOTH权限允许用户连接蓝牙设备,android.permission.BLUETOOTH_ADMIN权限允许用户管理蓝牙硬件及使用相关服务,包括开启或关闭蓝牙硬件、扫描可连接蓝牙设备、传送数据等。相关的蓝牙API在android.bluetooth包中进行定义,包含以下几个主要类:
(1)BluetoothAdapter类代表设备上的蓝牙硬件;
(2)BluetoothDevice类定义远程蓝牙设备;
(3)BluetoothServerSocket类用来打开监听到达连接的套接字,并且在连接后提供一个BluetoothSocket对象;