2013-08-19 2 views
0

안드로이드 전화/태블릿 (4.0.3)과 귀걸이 리더 인 블루투스 장치 사이에 블루투스 통신을 설정하려고합니다 (Destron Fearring DTR3E, 당신이 알고 싶은 경우에 대비해서, 나는 당신이하지 않는다고 가정).블루투스 통신을 청취하려고 할 때 수락에서 복귀하지 않음 - 안드로이드

블루투스 설정에서 리더가 리더와 페어링 (리더가 태그에 페어링 패스 코드가 있음), 블루투스가 켜져 있고 이제는 기기에서 읽는 것을 시도하고 있습니다. BluetoothServerSocket. 문제는 accept 호출이 결코 돌아 오지 않는다는 것입니다. 그래서 분명히 잘못된 것을하고 있습니다. 통신은 RFCOMM을 사용하여 수행됩니다.

코드 :

private class AcceptThread extends Thread { 
     private final BluetoothServerSocket mmServerSocket; 

     public AcceptThread() { 
      // Use a temporary object that is later assigned to mmServerSocket, 
      // because mmServerSocket is final 
      BluetoothServerSocket tmp = null; 
      try { 
       // MY_UUID is the app's UUID string, also used by the client code 

       String uuid = "00001101-0000-1000-8000-00805F9B34FB"; 
       tmp = bluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord("pdfParserServer", UUID.fromString(uuid)); 
      } catch (Exception e) { 
      e.printStackTrace(); 
      } 
      mmServerSocket = tmp; 
     } 

     public void run() { 
      BluetoothSocket socket = null; 
      // Keep listening until exception occurs or a socket is returned 
      while (true) { 
       try { 
        socket = mmServerSocket.accept(); 
       } catch (IOException e) { 
        break; 
       } 
       // If a connection was accepted 
       if (socket != null) { 
        // Do work to manage the connection (in a separate thread) 

        try { 
         mmServerSocket.close(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 
        break; 
       } 
      } 
     } 

     /** Will cancel the listening socket, and cause the thread to finish */ 
     public void cancel() { 
      try { 
       mmServerSocket.close(); 
      } catch (IOException e) { } 
     } 
    } 

내가 놓친 거지 뭔가가 있나요?

감사합니다.

답변

2

코드가 수락에서 돌아 오지 않을 수있는 유일한 이유는 연결하려는 "Destron Fearring DTR3E"장치가 실제로는 bluetoothserver 소켓이고 bluetooth 클라이언트가 아니기 때문에 장치 당신이 실제로 블루투스 서버 소켓에 연결하여 기다리는 중입니다. 블루투스 서버 소켓을 만들고 안드로이드 장치에 연결하기를 기다리는 대신 장치의 사양을 읽고 실제로 가지고있는 소켓인지 확인하십시오. ...이 도움이

희망 ...

감사합니다 "를 Destron Fearring DTR3E"소켓에 연결을 엽니 다!

+0

실제로 이러한 장치에 대한 문제는 적절한 문서를 찾은 것입니다. –