如何限制通过蓝牙连接到设备的电话数量?

时间:2019-02-19 06:11:08

标签: c linux bluetooth bluez

应用场景:

Android应用程序通过蓝牙以及它们之间的一些数据传输连接到嵌入式设备。在任何时候,只有一个应用程序可以控制并将数据发送到嵌入式设备。

开发环境:

linux,c / c ++,bluez堆栈,cmdline工具(如bluetoothctl)。

Bluetooth 4.0允许多个从属设备可以通过Bluetooth piconet与主设备进行通信。

那么如何限制连接到嵌入式设备的电话数量?

1 个答案:

答案 0 :(得分:2)

使用蓝牙4.0,一个从设备只能连接到一个主设备。另一方面,一个主设备可以具有多个从设备(例如,在微微网中,您的Android设备可以连接8个或更多从设备,但是如果从设备是4.0设备,则它们不能连接到另一个主设备。)

蓝牙4.1中引入了一种功能,该功能可将一个从机连接到一个以上的主机,该功能称为 LE链路层拓扑。在使用此功能之前,一个从站只能有一个连接。

因此,要回答您的问题,您无需执行任何操作即可限制可以连接到嵌入式设备的电话数量。连接电话后,您的嵌入式设备将无法接受任何其他传入的BLE连接。

最后,实际上,有一种方法可以确保您的从属设备仅连接到一个主设备,无论使用什么版本的Bluetooth。通过在连接后禁用广告来实现此目的。广告是接受传入连接的唯一方法,如果您的设备不进行广告,则远程设备甚至看不到它。

有关更多信息,请参阅蓝牙规范v5.1,第6卷,B部分,第1.1节链接层状态。

我希望这会有所帮助。