在这就不对SPP协议进行深入探讨技术细节,而是对于SPP通信进行一个大体描述,建立一个整体框架模型,总结如下几点。
- 蓝牙协议众多,SPP只是其中一种;
- SPP通信属于典型的C/S模式,那么建立通信的双方就分为服务端和客户端;
- SPP对蓝牙模块串口的读写实现通信,建立在串口仿真协议RFCOMM上实现;
- 服务端和客户端对应为BluetoothServerSocket和BluetoothSocket,通过流进行数据传输,和java中的socket很像。
关于第三点的RFCOMM,它是蓝牙客户端和服务端的Socket通道,其目的为了解决如何在两个不同设备上的应用程序之间保证一条完整的通信路径,并在它们之间保持同一通信段的问题。设备配对后,还没有通信通道,BluetoothServerSocket监听RFCOMM,BluetoothSocket发起建立RFCOMM连接完成通信通道的建立。大致就像是下面这样: