安卓手机APP开发__蓝牙功能概述
目录
概述
基本内容
关键的类和接口
概述
安卓平台支持了蓝牙网络栈,它允许一个设备和其它的蓝牙设备进行无线的交换数据。
APP的框架提供了通过蓝牙API得到蓝牙的功能。这些API让APP能够
连接到其它的蓝牙设备上,建立起点到点还有多点的无线连接的功能。
使用蓝牙API,一个APP能执行如下的功能:
扫描其它的蓝牙设备
为匹配蓝牙设备,查询本地的蓝牙适配器。
建立起RFCOMM通道。
通过服务发现,连接其它的设备。
与其它的已经连接的设备进行交换数据
管理多个连接.
这个主题聚焦于经典的蓝牙。经典的蓝牙对于更电池电量敏感的操作而言,是正确的选择。
它包括了设备之间的流和通信。对于有低能耗需求的蓝牙设备,考虑使用蓝牙的低能耗连接。
这里描述了不同的蓝牙档案并且解释如何使用蓝牙API完成蓝牙通信必须的四个主要的任务
设置蓝牙
在本地区域发现可以配对的设备
连接设备
在设备之间传输数据。
基本内容
对于启用了蓝牙的设备,在彼此之间传输数据,它们必须首先形成一个通信的通道。
一个设备是一个可被发现的设备,让它自己处于对接入的连接请求是可用的。
另一个设备使用一个服务发现的进程来查找可被发现的设备。可被发现的设备
接受了配对的请求后,两个设备完成了绑定的操作,它们交换了安全凭证。设备
为了之后的使用,缓存这些安全凭证。配对和绑定完成之后,两个设备之间交换
信息。当会话完成后,设备初始化配对的请求,释放已经链接的通信通道。
两个设备之间还保留着绑定,然而,所以它们在未来的会话中只要彼此需求,
也没有任何一方解绑定的情况下,它们能够自动化地重新连接。
蓝牙API的使用需要在你的配置文件中,声明一些权限。一旦你的APP有了使用
蓝牙的权限,你的APP需要读取蓝牙适配器和确定设备上的蓝牙功能是否可用。
如果蓝牙功能是可用的,有如下的三个步骤建立起一个连接:
查找一个附近的蓝牙设备,可以是已经配对的设备,也可以是一个新的设备。
连接到一个蓝牙设备
与已经连接的设备进行数据传输
特定的设备使用一个特定的蓝牙档案来声明它能提供的数据。
关键的类和接口
android.bluetooth 软件包中提供了所有蓝牙 API。以下是创建蓝牙连接所需的类和接口:
BluetoothAdapter
表示本地蓝牙适配器(蓝牙无线装置)。BluetoothAdapter 是所有蓝牙交互的入口点。借助此功能,您可以发现其他蓝牙设备、查询已绑定(配对)设备的列表、使用已知的 MAC 地址实例化 BluetoothDevice,以及创建 BluetoothServerSocket 来监听其他设备的通信。
BluetoothDevice
表示远程蓝牙设备。使用此方法可以通过 BluetoothSocket 请求与远程设备建立连接,或查询有关设备的信息,例如设备的名称、地址、类和绑定状态。
BluetoothSocket
表示蓝牙套接字的接口(类似于 TCP Socket)。这是允许应用使用 InputStream 和 OutputStream 与其他蓝牙设备交换数据的连接点。
BluetoothServerSocket
表示用于监听传入请求的开放服务器套接字(类似于 TCP ServerSocket)。为了连接两台设备,一台设备必须使用此类打开服务器套接字。当远程蓝牙设备向此设备发出连接请求时,该设备会接受连接,然后返回已连接的 BluetoothSocket。
BluetoothClass
描述蓝牙设备的一般特征和功能。这是一组只读属性,用于定义设备的类和服务。虽然这些信息可以提供有关设备类型的有用提示,但该类的属性不一定要描述设备支持的所有蓝牙配置文件和服务。
BluetoothProfile
表示蓝牙配置文件的接口。蓝牙配置文件是适用于设备间蓝牙通信的无线接口规范。例如,免触摸配置文件。如需详细了解配置文件,请参阅蓝牙配置文件。
BluetoothHeadset
支持蓝牙耳机,以便与手机配合使用。这包括蓝牙耳机配置文件和免提 (v1.5) 配置文件。
BluetoothA2dp
定义如何使用高级音频分发配置文件 (A2DP) 通过蓝牙连接将高品质音频从一台设备流式传输到另一台设备。
BluetoothHealth
表示用于控制蓝牙服务的健康设备配置文件代理。
BluetoothHealthCallback
用于实现 BluetoothHealth 回调的抽象类。您必须扩展此类并实现回调方法,以接收关于应用注册状态和蓝牙通道状态变化的更新。
BluetoothHealthAppConfiguration
表示蓝牙运行状况第三方应用注册的应用配置,该配置用于与远程蓝牙健康设备通信。
BluetoothProfile.ServiceListener
一个接口,用于在 BluetoothProfile 进程间通信 (IPC) 客户端连接到运行特定配置文件的内部服务或断开与这类服务的连接时通知这些客户端。