Android蓝牙概述.doc
文本预览下载声明
蓝牙及蓝牙通讯Bluetooth概述
? ? ? ? 不过,在以Android为代表的智能机出现以前,蓝牙在早期智能机甚至功能机中一直扮演着“鸡肋”的角色。那么,随着无线通信技术的快速发展以及Android的普及,蓝牙技术在我们生活中的应用也越来越多,包括蓝牙耳机和鼠标,及蓝牙局域网应用(聊天、游戏等)。
?(二)、蓝牙规范介绍
? Core Specification(核心规范)
? ?作用:用于规定蓝牙设备必须实现的通用功能和协议层次。它由软件和硬件模块组成,两个模块之间的信息和数据通过主机控制接口(HCI)的解释才能进行传递
? ?核心规范是蓝牙协议家族的基础,自蓝牙技术联盟(Bluetooth SIG,Special Interest Group)在1999年颁布蓝牙核心规范1.0版本以来,到目前为止蓝牙SIG一共发布了七个重要版本。每一个版本都促使蓝牙技术朝着更快、更安全、更省电的方向发展。
二、蓝牙的用法
(一)、蓝牙API
? ? ? ? Android所有关于蓝牙开发的类都在android.bluetooth包下,只有8个类:
BluetoothAdapter ? ??本地蓝牙适配器?
BluetoothClass ? ? ?蓝牙类(主要包括服务和设备)?
BluetoothClass.Device ? ?蓝牙设备类?
BluetoothClass.Device.Major ? ?蓝牙设备管理?
BluetoothClass.Service ? 蓝牙服务类?
BluetoothDevice ? ??蓝牙设备(远程蓝牙设备)?
BluetoothServiceSocket ? ?监听蓝牙连接的类?
BluetoothSocket ? ??蓝牙连接类
1、BluetoothAdapter :
? ? ? ??表示本地的蓝牙适配器 (蓝牙射频)。BluetoothAdapter 是为所有蓝牙交互的入口点。它可以发现其他蓝牙设备、 查询绑定 (配对) 设备的列表、 实例化已知的 MAC 地址的BluetoothDevice(蓝牙设备) 和创建 BluetoothServerSocket 用于侦听来自其他设备的通信。直到我们建立bluetoothSocket连接之前,都要不断操作它 。BluetoothAdapter里的方法很多,常用的有以下几个:?
cancelDiscovery() 根据字面意思,是取消发现,也就是说当我们正在搜索设备的时候调用这个方法将不再继续搜索;?
disable()关闭蓝牙;?
enable()打开蓝牙;这个方法打开蓝牙不会弹出提示,更多的时候我们需要问下用户是否打开,以下两行代码同样是打开蓝牙,不过会提示用户:?
Intemtenabler=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);?
startActivityForResult(enabler,reCode);//同startActivity(enabler);?
getAddress()获取本地蓝牙地址?
getDefaultAdapter()获取默认BluetoothAdapter,实际上,也只有这一种方法获取BluetoothAdapter?
getName()获取本地蓝牙名称?
getRemoteDevice(String address)根据蓝牙地址获取远程蓝牙设备?
getState()获取本地蓝牙适配器当前状态(感觉可能调试的时候更需要)?
isDiscovering()判断当前是否正在查找设备,是返回true?
isEnabled()判断蓝牙是否打开,已打开返回true,否则,返回false?
listenUsingRfcommWithServiceRecord(String name,UUID uuid)根据名称,UUID创建并返回BluetoothServerSocket对象,这是创建BluetoothSocket服务器端的第一步 。第一个参数表示蓝牙服务的名称,可以是任意字符串,第二个参数是UUID。
startDiscovery()开始搜索,这是搜索的第一步?
2、BluetoothDevice
? ? ? ??表示远程蓝牙设备。使用此类并通过BluetoothSocket类可以请求连接远程设备,或查询这台设备的信息如其名称、 地址、 类和绑定状态。
createRfcommSocketToServiceRecord(UUIDuuid)
? ? ? ? ? ? 根据UUID创建并返回一个BluetoothSocket,这个方法也是我们获取BluetoothDevice的目的——创建BluetoothSocket。这个类其他的方法,如getAddress()
显示全部