我正在开发一个客户端 - 服务器蓝牙聊天应用程序,其中多个客户端可以与服务器连接。如果我有多个服务器,我希望客户端选择它可以连接到哪个服务器,但我知道哪个设备安装了应用程序并且它是服务器。有多个蓝牙配置文件,我不知道哪一个使用它以及如何使用它。使用服务器预先存储设备的MAC ID是一种解决方案,但我不想这样做。请提出建议。非常感谢:)
答案 0 :(得分:0)
我假设目的是避免使用listenUsingInsecureRfcommWithServiceRecord / createInsecureRfcommSocketToServiceRecord(1)进行不安全的连接尝试。
如果您不介意更改设备的友好名称,只需在设备发现期间,您可以使用setName
(2)将服务器重命名为您的服务器模式。在设备发现时,您可以获取远程设备名称(3),然后在启动连接之前进行模式匹配。
一旦完成发现,就恢复名称。
答案 1 :(得分:0)
您使用UUID创建BluetoothServerSocket
。此UUID标识您的应用程序,并可通过蓝牙发现进行检索。此UUID也用于连接到您的服务器设备,因此您无需在服务名称中对应用程序的名称进行编码。
检查此答案以获取详细说明: How do Bluetooth SDP and UUIDs work? (specifically for Android)