마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

블루투스 소켓 관련 질문입니다

0 추천

블루 투스 채팅 예제를 사용해 여러개의 UUID를 사용하여 블루투스를 통해 한 서버에 여러 클라이언트가 접속하는 다중 접속코드를 짜고있습니다. 접속 실패시 for문을 사용하여 UUID를 돌리고 있는데 처음 클라이언트는 문제없이 들어갑니다. 그런데 2번째 클라이언트부터 for문을 돌지 않고 첫번째 UUID를 통해서만 접속을 합니다.... 접속이 실패된거 같은데 서버쪽엔 연결성공 시 뜨는 토스트가 뜨지 않고 클라이언트쪽은 성공했다고 토스트가 뜨네요.... 통신을 해봐도 첫번째 클라이언트만 반응을하고 2번째 클라이언트는 반응하지 않습니다ㅠㅠ 2번째 클라이언트 접속해제시 서버 2번째 클라이언트 모두 접속 해제 토스트가 뜹니다. 첫번째 클라이언트 접속해제시 서버, 첫번째, 두번째 클라이언트 모두 접속해지가 뜹니다. 도대체 이게 뭐죠?ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ....... ㅠㅠㅠㅠㅠㅠㅠ도와주세요 블루투스 너무 어렵네요ㅠㅠ 일주일째 고민중입니다... 코드는 길어서... 필요시 바로 올리겠습니다.

UUID를 인위적으로 조작하여 7개의 UUID를 사용하면 모두 접속 잘됩니다.... connect이부분이 문제인데 이부분만 코드를 올리겠습니다.

 

문제 : for문이 돌지 않고 계속 첫번째 UUID만을 사용

    public synchronized void connect(BluetoothDevice device) {
        if (D) Log.d(TAG, "connect to: " + device);
        
        temp_device = device;

        // Cancel any thread attempting to make a connection
        if (mState == STATE_CONNECTING) {
            if (mConnectThread != null) {mConnectThread.cancel(); mConnectThread = null;}
        }

        // Cancel any thread currently running a connection
        if (mConnectedThread != null) {mConnectedThread.cancel(); mConnectedThread = null;}

        // Create a new thread and attempt to connect to each UUID one-by-one.    
        for (int i = 0; i < 7; i++) {
        	//if(UUID_CHECK[i] == 1){
        		//UUID_CHECK[i] = 1;
        	//Log.d(TAG, "!!!!!!!!!!!!!!ConnectedThread i :" + i);
        		
        		temp = i;
	        	try {
	                mConnectThread = new ConnectThread(device, mUuids.get(i));
	                mConnectThread.start();
	                setState(STATE_CONNECTING);
	                Log.d(TAG, "ConnectedThread i :" + i);
	                //break;                
	        	} catch (Exception e) {
	        	}
        	//}        	
        }
    }

 

CSP_lab (390 포인트) 님이 2015년 4월 30일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...