私はいくつかのデバイスをBT経由でサーバーデバイスに接続しています。 私は、接続できるようにいくつかのUUIDを持っています。BTソケットに使用されているUUIDを見つける
ただし、デバイスが切断されることがあるため、サーバーを検出可能にして、デバイスが元々使用していたのと同じUUIDを使用する必要があります。そうすれば、そのUUIDが利用可能であることが確かめられます。
デバイスに接続するために使用されたUUIDを知る方法はありますか?
私はいくつかのデバイスをBT経由でサーバーデバイスに接続しています。 私は、接続できるようにいくつかのUUIDを持っています。BTソケットに使用されているUUIDを見つける
ただし、デバイスが切断されることがあるため、サーバーを検出可能にして、デバイスが元々使用していたのと同じUUIDを使用する必要があります。そうすれば、そのUUIDが利用可能であることが確かめられます。
デバイスに接続するために使用されたUUIDを知る方法はありますか?
私はあなたの問題を理解していますが、私はAndroid SDKがBluetoothSocketに関連付けられた内部UUIDを取得する方法を公開していないことに気づきましたが、Androidソースコードに表示されていればBluetoothSocketは関連する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
}
}
}
[OK]を、これが唯一の解決策ではありませんが、あなたが与えられたのServerSocketのために受け入れBluetoothSocketsでUUIDを関連付けたい場合は、それが可能なソリューションです。
はちょうどあなたがあなたとの接続を希望別のUUIDを持つたびに、このスレッドを呼び出します。
希望しました^^ '