应用场景:
Android 应用程序通过蓝牙连接到嵌入式设备,并在它们之间传输一些数据。每时每刻,只有一个应用程序可以控制嵌入式设备并向其发送数据。
开发环境:
linux、c/c++、bluez 堆栈、命令行工具,如 bluetoothctl。
蓝牙 4.0 允许多个从设备可以在蓝牙微微网中与主设备通信。
那么如何限制接入嵌入式设备的手机数量呢?
最佳答案
有了蓝牙4.0,一个slave只能连接一个master。另一方面,主设备可以有多个从设备(例如,在微微网中,您的 Android 设备可以连接到 8 个或更多从设备,但如果从设备是 4.0 设备,则它们不能连接到另一个主设备)。
Bluetooth 4.1 中引入了一个从设备可以连接到多个主设备的功能,称为 LE 链路层拓扑。在此功能之前,从站只能有一个连接。
因此,要回答您的问题,您无需执行任何操作来限制可以连接到您的嵌入式设备的电话数量。连接手机后,您的嵌入式设备将无法接受任何其他传入的 BLE 连接。
最后,实际上有一种方法可以确保您的从设备只连接到一个主设备,而不管使用的是什么版本的蓝牙。这是通过在连接后禁用广告来实现的。广告是接受传入连接的唯一方式,如果您的设备没有广告,那么远程设备甚至都看不到它。
有关详细信息,请参阅蓝牙规范 v5.1,第 6 卷,B 部分,第 1.1 节链路层状态。
希望对您有所帮助。
关于c - 如何限制通过蓝牙连接到设备的手机数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54759845/