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

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

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

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

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

管理连接如果两个设备成功建立了连接,各自会有一个BluetoothSocket,此时可以在设备间共享数据了。使用BluetoothSocket,传输任何数据通常来说都比较容易,通常如下进行:+分别使用getInputStream()和getOutputStream()获取输入输出流来处理传输。+调用read(byte)和write(byte)来实现数据读写。
注意事项希望对你们能够有所帮助!!
以上就是全部内容了!!
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1105432.html