BT를 통해 여러 장치를 서버 장치에 연결하고 있습니다. 연결할 수 있도록 여러 개의 UUID가 있습니다.BT 소켓에 사용 된 UUID 찾기
그러나 때때로 장치가 연결이 끊어 지므로 서버를 검색 가능하게 만들고 장치가 원래 사용했던 것과 동일한 UUID를 사용해야합니다. 그렇게하면 해당 UUID를 사용할 수 있습니다.
장치에 연결하는 데 사용 된 UUID를 알 수있는 방법이 있습니까?
BT를 통해 여러 장치를 서버 장치에 연결하고 있습니다. 연결할 수 있도록 여러 개의 UUID가 있습니다.BT 소켓에 사용 된 UUID 찾기
그러나 때때로 장치가 연결이 끊어 지므로 서버를 검색 가능하게 만들고 장치가 원래 사용했던 것과 동일한 UUID를 사용해야합니다. 그렇게하면 해당 UUID를 사용할 수 있습니다.
장치에 연결하는 데 사용 된 UUID를 알 수있는 방법이 있습니까?
나는 당신의 문제를 이해하지만, 안드로이드 SDK는 안드로이드 소스 코드에서 볼 수 있듯이 블루투스 소켓이 연결된 UUID를 알고있는 한, 안드로이드 SDK가 블루투스 소켓과 관련된 내부 UUID를 얻는 방법을 공개하지 않을까 걱정된다.
다른 UUID를 청취하는 BluetoothServerSockets를 여러 개 만들 수 있습니다. 원하는 BluetoothServerSocket에서 accept() 호출로 생성 된 BluetoothSockets 간의 연관성을 잃지 않는 것이 좋습니다. 왜냐하면 ServerSocket을 만들 때 UUID를 알았 기 때문입니다.
public class IncommingConnectionsForAGivenUUID extends Thread
{
private BluetoothServerSocket serverSocket;
private UUID serviceUUID;
private boolean isRunning;
public IncommingConnectionsForAGivenUUID(BluetoothAdapter btAdapter, UUID serviceUUID) throws IOException
{
this.serverSocket = btAdapter.listenUsingRfcommWithServiceRecord("localBtName", serviceUUID);
this.serviceUUID = serviceUUID;
}
@Override
public void run()
{
this.isRunning = true;
while(this.isRunning)
{
BluetoothSocket socket = this.serverSocket.accept();
// do something with the socket...
// this socket will have the UUID passed in
// the constructor. So in this point you can associate
// this socket with the serviceUUID variable without
// having to call a method from the BluetoothSocket
}
}
}
좋아,이 유일한 해결책이 아니라 주어진 ServerSocket를 위해 받아 들인 BluetoothSockets와 UUID를 연결하려는 경우는 가능한 솔루션입니다.
그냥 당신이 당신이 연결을 수신 할 또 다른 UUID를 할 때마다이 스레드를 호출합니다.
희망을 얻었습니다. ^^ '