0

私のAndroidアプリケーションでは、BTデバイス(SPPプロファイル)から送信された接続要求を受け入れることができます。これらのBTデバイスは定期的に接続要求を送信し、アプリケーションはそれを受け入れます。しかし、今の私の問題は、複数のデバイスとペアリングすることはできますが、ペアリングされたデバイスと定期的に通信したいということです。だから私はこの面で明確にしたい。アプリケーションが1つのデバイスと通信し、同時に別のデバイスが接続要求を送信する場合、BluetoothServerSocketを使用してアプリからこの接続要求を受け入れることができますか?どのように?

4

2 に答える 2

2

Bluetooth サーバーは、最大 7 つの異なる bluetooth クライアントにサーバーを提供できます。別のスレッドで bluetooth サーバーソケットを作成し、クライアントが接続するたびに、そのクライアントを新しいスレッドに送信し、リッスン状態に戻る必要があります。次の疑似コードを使用できます

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 に答える