安卓平台提供对蓝牙通讯栈的支持,它允许设备和其他的蓝牙设备进行无线传输数据。 应用程序层通过安卓蓝牙API来调用蓝牙相关功能。这些API使程序无线连接蓝牙设备,并拥有P2P或多端无线连接的特性。
使用蓝牙API,安卓程序能:
- 扫描其他蓝牙设备
- 为可配对蓝牙设备查询蓝牙适配器。
- 建立RFCOMM通道
- 通过服务搜索来连接其他设备。
- 与其他设备进行数据传输。
- 管理多个连接。
基础知识
本文介绍了怎样使用蓝牙API完成建立蓝牙连接的必要四步:
- 打开蓝牙;
- 查找附近已配对或可用的设备;
- 连接设备;
- 设备间数据交换。
所有蓝牙API都在android.bluetooth
包下,下面有一些类和接口的摘要,你可能需要它们来建立蓝牙连接:
BluetoothAdapter
代表本地蓝牙适配器(蓝牙无线电)。BluetoothAdapter
是所有蓝牙交互的入口。使用这个你可以发现其他蓝牙设备,查询已配对的设备列表,使用一个已知的MAC地址来实例化一个BluetoothDevice
,以及创建一个BluetoothServerSocket
来为监听与其他设备的通信。
BluetoothDevice
代表一个远程蓝牙设备,使用这个来请求一个与远程设备的BluetoothSocket
连接,或者查询关于设备名称、地址、类和连接状态等设备信息。
BluetoothSocket
代表一个蓝牙socket的接口(和TCP Socket类似)。这是一个连接点,它允许一个应用与其他蓝牙设备通过InputStream和OutputStream交换数据。
BluetoothServerSocket
代表一个开放的服务器socket
,它监听接受的请求(与TCP ServerSocket
类似)。为了连接两台Android设备,一个设备必须使用这个类开启一个服务器socket
。当一个远程蓝牙设备开始一个和该设备的连接请求,BluetoothServerSocket
将会返回一个已连接的BluetoothSocket
,接受该连接。
BluetoothClass
描述一个蓝牙设备的基本特性和性能。