BluetoothServerSocket aceita falha e lança uma IOException

Eu tenho um dispositivo que suporta o OBEX Object Push Profile, este perfil é baseado no perfil de porta serial. Meu palpite é que posso usar o exemplo do Bluetooth Bluetooth Chat para conectar esse dispositivo ao meu telefone Android. Mas eu me deparei com um problema, sobre osocket.accept() funcionalidade no Android SDK. Eu tento realizar para conectar meu telefone com este dispositivo assim:

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

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

O construtor em AcceptThread é codificado assim:

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;
}

O problema é quando tento fazer umaconnect() como eu disse 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 você pode ver o ServerSocket aceita todas as conexões de entrada para20 seconds ou20000 ms. Quando o tempo acabar, o aplicativo lançará uma IOException como esta

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

que me diz que meu dispositivo não conseguiu se conectar ao meu telefone Android. O dispositivo não possui um botão de conexão no visor, apenas uma funcionalidade de envio que enviará um arquivo para o meu telefone. Acredito que essa funcionalidade de envio também faça uma conexão em segundo plano, mas não tenho certeza.

Alguém pode identificar quaisquer soluções para mim? Estou executando meu aplicativo em umSamsung Galaxy SIII comAndroid 4.0.4

questionAnswers(1)

yourAnswerToTheQuestion