Akceptacja BluetoothServerSocket kończy się niepowodzeniem i zgłasza wyjątek IOException

Mam urządzenie, które obsługuje profil obiektów OBEX, profil ten opiera się na profilu portu szeregowego. Domyślam się, że mogę użyć przykładu Android Bluetooth Chat do podłączenia tego urządzenia do mojego telefonu z Androidem. Ale natknąłem się na problem dotyczącysocket.accept() funkcjonalność w Android SDK. Staram się połączyć mój telefon z takim urządzeniem:

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

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

Konstruktor w AcceptThread jest zakodowany tak:

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

Problem polega na tym, że próbuję zrobićconnect() jak już mówiłem

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

Jak widzisz, ServerSocket akceptuje każde połączenie przychodzące20 seconds lub20000 ms. Gdy czas się skończy, aplikacja wyśle ​​wyjątek IOException w ten sposób

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

co mówi mi, że moje urządzenie nie mogło połączyć się z moim telefonem z Androidem. Urządzenie nie ma przycisku połączenia na wyświetlaczu, a jedynie funkcję wysyłania, która wyśle ​​plik do mojego telefonu. Wierzę, że ta funkcja wysyłania również łączy się w tle, ale nie jestem pewien.

Czy ktoś może znaleźć dla mnie jakieś rozwiązania? Używam mojej aplikacji na aSamsung Galaxy SIII zAndroid 4.0.4

questionAnswers(1)

yourAnswerToTheQuestion