文档详情

Android蓝牙概述.doc

发布:2017-05-24约1.33万字共19页下载文档
文本预览下载声明
蓝牙及蓝牙通讯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()
显示全部
相似文档