La aceptación de BluetoothServerSocket falla y lanza una IOException

Tengo un dispositivo que admite el perfil de inserción de objetos OBEX, este perfil se basa en el perfil de puerto serie. Supongo que puedo usar el ejemplo del chat de Bluetooth para Android para conectar este dispositivo a mi teléfono Android. Pero me encontré con un problema, en relación con elsocket.accept() Funcionalidad en el SDK de Android. Intento lograr conectar mi teléfono con este dispositivo de esta manera:

adapter = BluetoothAdapter.getDefaultAdapter(); 
device = adapter.getRemoteDevice("00:1B:DC:0F:EC:7E");

AcceptThread = new AcceptThread(true, adapter, device);
AcceptThread.start(); 

El constructor en AcceptThread está codificado así:

public AcceptThread(boolean secure, BluetoothAdapter adapter, BluetoothDevice device) {
    BluetoothServerSocket tmp = null;
    this.adapter = adapter;
    this.device = device;

    // Create a new listening server socket
    try {
        tmp = adapter.listenUsingInsecureRfcommWithServiceRecord(device.getName(), UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
    } catch (Exception e) {
        Log.e(TAG, ".AcceptThread # listen() failed", e);
    } 
    mmServerSocket = tmp;
}

El problema es cuando trato de hacer unconnect() Como dije antes

public void run() {
    BluetoothSocket socket = null;

    // Listen to the server socket if we're not connected
    while (mState != STATE_CONNECTED) {
        try {
            // This is a blocking call and will only return on a
            // successful connection or an exception
            Log.d(TAG, "AcceptThread.run: accepting server socket connection");

            socket = mmServerSocket.accept(20000); 

            Log.d(TAG, ".AcceptThread.run # server socket connection accepted");
        } catch (Exception e) {
            Log.e(TAG, ".run # accept() failed: "+e);
            break;
        }
    }
}

Como puede ver, ServerSocket acepta todas las conexiones entrantes para20 seconds o20000 ms. Cuando se acabe el tiempo, la aplicación lanzará una IOException como esta

07-11 10:30:08.355: E/SIMPLECONNECT(1301): .run # accept() failed: java.io.IOException: Connection timed out

lo que me dice que mi dispositivo no pudo conectarse a mi teléfono Android. El dispositivo no tiene un botón de conexión en la pantalla, solo una función de envío que enviará un archivo a mi teléfono. Creo que esta funcionalidad de envío también hace una conexión en segundo plano, pero no estoy seguro.

¿Alguien puede señalar alguna solución para mí? Estoy ejecutando mi aplicación en unSamsung Galaxy SIII conAndroid 4.0.4

Respuestas a la pregunta(1)

Su respuesta a la pregunta