1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

BluetoothSocket accept() IOException

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Peter123, 03.01.2012.

  1. Peter123, 03.01.2012 #1
    Peter123

    Peter123 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    103
    Erhaltene Danke:
    7
    Registriert seit:
    13.11.2010
    Ich möchte zwischen zwei Geräten eine Bluetoothverbindung herstellen.
    Das funktioniert auch soweit, jedoch gibt es dabei ein Problem:

    Auf dem Gerät von welchem ich connecte wird mir bei
    Code:
    try {
                        // This is a blocking call and will only return on a
                        // successful connection or an exception
                        socket = mmServerSocket.accept();
                    } catch (IOException e) {
                        Log.e(TAG, "Socket Type: " + mSocketType + "accept() failed", e);
                        break;
                    }
    eine IOException ausgeworfen:


    BluetoothChatService Socket Type: nullaccept() failed
    BluetoothChatService java.io.IOException: Operation Canceled


    Dies hat zur Folge, dass dieses Gerät dann keine Daten vom anderen Gerät empfangen kann. Das Senden der Daten funktioniert aber einwandfrei.
     
  2. snowman2, 03.01.2012 #2
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Wenn ich dich richtig verstehe Baust du eine BT-Verbinung als Client auf. Also hast du bereits einen gültigen BluetoothSocket über den du sendest was ja auch funktioniert.

    Das verstehe ich nicht. Wenn das Senden funktioniert, dann hast du bereits einen Socket. Wenn du bereits einen Socket hast, brauchst du
    "socket = mmServerSocket.accept();" nicht mehr aufrufen. Das brauchst du nur wenn das Gerät als Server fungiert. Und das widerspricht sich zu meiner Vermutung von oben.

    Woher bekommst du deinen
    mmServerSocket ?
     
    Zuletzt bearbeitet: 03.01.2012
  3. Peter123, 03.01.2012 #3
    Peter123

    Peter123 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    103
    Erhaltene Danke:
    7
    Registriert seit:
    13.11.2010
    Meinen mmServerSocket bekomme ich hiermit:

    Code:
     try {
        //tmp = mAdapter.listenUsingRfcommWithServiceRecord(NAME, MY_UUID);
        tmp = InsecureBluetooth.listenUsingRfcommWithServiceRecord(mAdapter, NAME, MY_UUID, true);
                	
         } catch (IOException e) {
              Log.e(TAG, "Socket Type: " + mSocketType + "listen() failed", e);
          }
             mmServerSocket = tmp;
     
  4. snowman2, 03.01.2012 #4
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Wie siehts den mit meinen anderen Fragen aus?
    Du forderst ja entweder eine Verbindung als Client an oder du wartest auf eine Verbindung als Server.
    Wenn ich dich richtig verstehe agierst du als Client und dann brauchst du keinen ServerSocket und kein accept().
    Evtl verstehe ich dich aber auch nur falsch.
     

Diese Seite empfehlen