2012-08-31 1 views
0

I는 서버 측
클라이언트 디바이스 인 PC 인 코드를 luugiathuy.com/2011/02/android-java-bluetooth/
를 이용해 접속 로이드 (갤럭시 탭 7.0)을 검출 할 수 없다 블루투스 채팅 사례를 기반으로 한 앱으로Bluecove는

기기 (갤럭시 탭 7.0)는 PC와의 연결을 설정할 수 있습니다. 그러나 PC 서버 (java 및 bluecove로 작성)는 아무 것도하지 않았으므로 아무 것도 연결되어 있지 않습니다.

연결된 장치를 찾기 위해 노력하는 루프는

while(true) { 
     try { 
      System.out.println("waiting for connection..."); 
      connection = notifier.acceptAndOpen(); 

      Thread processThread = new Thread(new ProcessConnectionThread(connection)); 

      processThread.start(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
      return; 
     } 

Output on PC: uuid: 0000110100001000800000805f9b34fb waiting for connection... 편집 : 소스 다운로드 네, 너무 나와 함께 일 https://github.com/luugiathuy/Remote-Bluetooth-Android

+0

은 당신이 뭔가를 전달하려고하는 장치에서 PC로? – Lucifer

+0

예. 이 예제에서는 장치를 원격으로 사용하여 왼쪽 또는 오른쪽 키를 눌러 슬라이드 쇼를 제어합니다 (java.awt.robot 사용) – RadZaeem

답변

0

, 내가 쉘에 다음과 같은 표창을 발사 할 제안 할 때 그것은을 기다리는 를 보여줍니다.

여기
hcitool cc 58:C3:8B:D7:FA:F4 

58:C3:8B:D7:FA:F4는 장치의 블루투스 주소로 교체해야 내 장치의 블루투스 주소입니다.

기기의 블루투스 주소를 가져 오려면 기기에서 블루투스를 검색 모드로 시작하고 hcitool scan 명령을 실행하면 활성화 된 모든 기기의 이름과 블루투스 주소가 표시됩니다.

다음과 같이 그럼 당신은 자바 코드를 통해 위의 hcitool cc 58:C3:8B:D7:FA:F4 명령을 실행할 수 있습니다

,

try 
{ 
    Process p=Runtime.getRuntime().exec("hcitool cc 58:C3:8B:D7:FA:F4"); 
} 
catch (Exception e) 
{ 

} 
+0

Windows에서 hcitool은 어디에 있습니까? – RadZaeem

+0

잘 모르겠습니다 만, Windows에서는 명령을 요구하지 않습니다. 창문에서 뛰고 있니? – Lucifer

+0

예. 실행중인 윈도우 7 – RadZaeem

0

프로그램의 출력은 UUID의 0 × 1101에서 수신 대기 말한다. 그게 사실이야? 참조하는 샘플은 다른 UUID에서 듣고 있음을 보여줍니다. 서비스 클래스 ID는 0x04c6093b이며 다음과 같이 설정됩니다.

34 UUID uuid = new UUID(80087355); // "04c6093b-0000-1000-8000-00805f9b34fb" 
35 String url = "btspp://localhost:" + uuid.toString() + ";name=RemoteBluetooth"; 
36 notifier = (StreamConnectionNotifier)Connector.open(url); 

클라이언트와 서버에서 일치해야합니다.

1

동일한 문제 나는 리눅스에서 노력하고있어. 그러나 당신이 bluecove를 사용하여 자바 서버를 켜지 않고 블루투스 안드로이드 애플리케이션을 실행할 때 (여전히 확실하지 않은) 이유는 이미 설치된 블루투스 소프트웨어와 연결을 시도합니다. 모바일 장치에 대한 액세스 권한 부여를 요청하는 블루투스 아이콘이 표시 될 수 있습니다.

이 문제를 해결하기 위해 서버와 응용 프로그램의 uuid를 변경 (1103에서 1101로 변경)하고 서버를 먼저 시작한 다음 안드로이드 응용 프로그램을 시작했습니다. 자바 서버 부분이 듣기 시작했습니다.

내가 생각한 이유는 uuid가 bluecove 스택 서비스 서버를 찾지 못했기 때문에 동일한 uuid를 수신하는 장치 서버에 연결되어 있기 때문입니다. 따라서 uuid를 변경하고 안드로이드 애플리케이션을 실행하기 전에 서버가 실행 중인지 확인한 후에 문제를 해결해야합니다.당신이 블루투스 시스템 응용 프로그램이 아닌 자바 bluecove 서버에 연결하기하는 경우

, 내가로부터했다

1) First change the uuid both server and android application. 
2) Second make sure your server is running and listening on same uuid. 
3) Launch the android application which try to communicate on same rfcomm connection uuid. 

서버 부품 코드 : http://www.jsr82.com/jsr-82-sample-spp-server-and-client/ 라이브러리 : http://code.google.com/p/bluecove/downloads/list