蓝牙一对多连接方法
1、"目前手机蓝牙不支持对多用户传输,因为蓝牙对手机发送文件要通过蓝牙套件进行发送,而现在的蓝牙设备套件驱动软件只支持识别一个终端,也就是一个手机。只能一个一个的发,现在就是这种情况。但理论上是应该能支持7个设备同时连接,在软件生计上要如何实现呢?
2、所谓一对多连接,只不过是因为一个蓝牙设备对多个的并发通信,也是一对一的链接,这同样是顺序的链接,组网MESH蓝牙,可以实现一发多收;

3、针对于Android开发——蓝牙多设备连接
一台手机可以连接多个设备,例如连接蓝牙耳机,智能手环等。既然手机可以连接多个设备,那么移动应用也是可以连接多个设备的(血压计、心率计等)

4、实现思路
关于蓝牙连接,主要是 BluetoothGatt 这个类型,每个蓝牙的连接都需要用独立且唯一的 BluetoothGatt 。开始的想法是每个蓝牙都重新创建一个 Service, 在新的 Service 内使用 BluetoothGatt 进行连接,然而这个方法是可以实现多设备连接,但是创建多个 Service 对手机消耗比较大。之后,想到把 BluetoothGatt 保存起来不就可以了么,那用什么保存呢,既可以临时保存多个,又可以按照需要获取相对应的 BluetoothGatt 。在 java 里面有个类型 Map(String, Object) ,它是以 key-value 的形式存储到 Map 中。可以根据当时的 Key 来取相应的 Value 值,而且在关掉进程时相应的变量也就释放了。

5、另外蓝牙连接方式有两种,作为服务器连如果要连接两个设备,其中一个必须充当服务器,它拥有BluetoothServerSocket。服务器Socket的作用是侦听进来的连接,且在一个连接被接受时返回一个BluetoothSocket对象。

6、另外是作为客户端连接为了实现与远程服务器设备的连接,必须首先获得一个代表远程设备BluetoothDevice的对象。然后使用BluetoothDevice对象来获取一个BluetoothSocket以实现连接。

7、管理连接如果两个设备成功建立了连接,各自会有一个BluetoothSocket,此时可以在设备间共享数据了。使用BluetoothSocket,传输任何数据通常来说都比较容易,通常如下进行:+分别使用getInputStream()和getOutputStream()获取输入输出流来处理传输。+调用read(byte[])和write(byte[])来实现数据读写。