在我的 Android 应用程序中,我可以接受从 BT 设备(SPP 配置文件)发送的连接请求。那些 BT 设备定期发送连接请求,应用程序接受它。但现在我的问题是,我可以与多个设备配对,但想定期与配对设备通信。所以我想在这方面进行澄清。如果应用程序与一台设备通信,同时另一台设备发送连接请求,那么我可以使用 BluetoothServerSocket 通过我的应用程序接受此连接请求吗?如何?
问问题
1122 次
2 回答
2
蓝牙服务器最多可以为 7 个不同的蓝牙客户端提供服务,您需要在单独的线程中创建蓝牙服务器套接字,并且每次客户端连接时,将该客户端发送到新线程,然后返回侦听状态。您可以使用以下伪代码
BluetoothServerSocket serverSocket = BluetoothAdapter.listenUsingRfcommWithServiceRecord();
while(running){
BluetoothSocket client = serverSocket.accept(); //blocks untel a client is connected
sendClientToHisThread(client);
}
private void sendClientToHisThread(final BluetoothSocket socket){
Thread thread = new Thread(new Runnable(){
@Override
public void run(){
// communicate with client
socket.close();
}
});
thread.start();
}
于 2013-01-30T11:01:33.853 回答
0
我认为您可以遵循BluetoothChat示例中的行,让线程监听传入连接,但在您的情况下,当连接建立时,您不会关闭服务器套接字。
于 2013-01-30T11:03:02.323 回答