android平台包含对蓝牙网络的支持,即允许设备无线地与其他蓝牙设备交换数据。应用框架系统地
提供了对蓝牙设备的操作的api。这些APIs允许应用程序无线连接其他蓝牙设备,包括点对点和多点
的特性。


通过蓝牙APIs,你可以做下面的事情:
1. 查看其他的蓝牙设备
2. 通过本地蓝牙适配器来配对蓝牙设备
3. 建立RFCOMM通道(一旦建立了RFCOMM通道,两设备即可交互数据)
4. 通过服务来与其他设备建立连接
5. 向其他设备传输或者获取数据
6. 管理多重连接


下面介绍,如何利用安卓的蓝牙APIs来完成4个主要任务:
1. 开启蓝牙
2. 在本地范围内搜索可用设备
3. 连接设备
4. 与其他设备交互数据


所有的蓝牙APIs都在android.bluetooth包内。


BluetoothAdapter:
代表本地的蓝牙适配器,可以使用这个去发现其他的蓝牙设备,获得蓝牙设别列表,并且使用一个已知的Mac
地址实例化一个BluetoothDevice,创建一个BluetoothServerSocket去监听来自其他设别的请求。


BluetoothDevice:
代表一个远方的蓝牙设备,用来请求与远方设备连接通过BlueToothSocket,或者询问设备的信息。


BluetoothSocket:
类似TCP socket,即通过这个可以使应用程序与远方的蓝牙设别交互数据,通过输入输出流。


BluetoothServerSocket:
类似TCP ServerSocket,当远方的蓝牙设备有一个连接请求,BluetoothServerSocke会返回一个
BluetoothSocket,当连接接受的时候。


BluetoothClass:
描述蓝牙设备的一般特点和功能。这是一个只读的属性。


蓝牙Permission:
1.  BLUETOOTH
2.  BLUETOOTH_ADMIN.
要使用 BLUETOOTH_ADMIN,必须有第一个 BLUETOOTH许可。当你有任何与其他设备的交互时,需要 BLUETOOTH许可。
当你需要开始发现其他蓝牙设备的时候,就需要 BLUETOOTH_ADMIN许可。另外,如果你要写一个电源管理器时,有
需要修改蓝牙设备设置时,就必须有 BLUETOOTH_ADMIN许可。


注:配对意思是两个设备相互意识到对方的存在,共享一个用来鉴别身份的链路键(link-key),能
够与对方建立一个加密的连接。
连接意思是两个设备现在共享一个RFCOMM信道,能够相互传输数据。