Siguiendo con la serie de artículos dedicados al Bluetooth que dejamos aquí, vamos a continuar desarrollando la clase BluetoothService añadiéndole el hilo encargado de hacer las funciones de servidor.
Tal y como hicimos con el servidor destinado a mantener la conexión, declararemos socket como atributo privado constante. En esta caso será de tipo BluetoothServerSocket, que a diferencia del BluetoothSocket tradicional, se encarga de mantenerse en escucha en un puerto y abrir un socket (esta vez sí, de la clase BluetoothSocket ) cuando detecta una conexión entrante. Comenzaremos codificando el constructor:
// Hilo que hace las veces de servidor, encargado de escuchar conexiones entrantes y // crear un hilo que maneje la conexion cuando ello ocurra. // La otra parte debera solicitar la conexion mediante un HiloCliente. private class HiloServidor extends Thread { private final BluetoothServerSocket serverSocket; public HiloServidor() { BluetoothServerSocket tmpServerSocket = null; // Creamos un socket para escuchar las peticiones de conexion try { tmpServerSocket = bAdapter.listenUsingRfcommWithServiceRecord(NOMBRE_SEGURO, UUID_SEGURO); } catch(IOException e) { Log.e(TAG, "HiloServidor(): Error al abrir el socket servidor", e); } serverSocket = tmpServerSocket; } }