2010-02-15 7 views
3

Windows 컴퓨터에서 .Net 용으로 프로그래밍 한 블루투스 서비스가 있으며 내 Android 2.1 전화로 연결하려고합니다. 서버가 Android가 연결하는 데 사용하는 것과 동일한 UUID를 수신합니다. 그러나 연결이 실패합니다.Android 블루투스 크로스 플랫폼 상호 운용성

해당 UUID를 수신하지 않는 장치에 연결하려고하면 "서비스 검색에 실패했습니다."라는 메시지가있는 예외가 발생하지만 올바른 UUID를 수신하는 서버에 연결하려고하면 메시지가 표시됩니다 상자가 팝업창을 엽니 다.

"블루투스 기기와 페어링 할 때 문제가 발생했습니다."

그리고 "Connection timed out"메시지와 함께 예외가 발생합니다. 따라서 서버와 Android가 통신하는 것처럼 보이지만 핸드 셰이 킹 중에는 오류가 발생합니다. 안드로이드는 서버가 전화와 쌍을 이루고 통신 채널을 암호화 할 것을 요구합니다. 누구든지이 사양을 사용하는 알고 있나요? 내 서버가 연결 시도에 적절하게 응답하게하고 싶습니다.

감사합니다.

답변

1

무엇이 잘못되었는지 알아 냈습니다. 문제는 페어링 대화 상자가 항상 작동하지 않기 때문에 연결을 시도하기 전에 원격 장치를 Android와 페어링해야한다는 것입니다. 버그가 Android 측이나 다른 기기 측에 있는지는 잘 모르겠지만 인증 코드를 묻는 대화 상자가 표시되지 않았거나 어느 기기 에나 인증 코드가 표시됩니다. 그래서 거기에 몇 가지 호환성 문제가있는 것 같습니다. 하지만 사전에 장치를 명시 적으로 쌍으로 연결하면 연결이 작동합니다.

1

네가 맞아. BluetoothChat 샘플 프로그램을 사용하여 RS232 장치에 연결하는 동안 동일한 문제가 발생합니다. 일단 블루투스 설정, 아무 문제를 통해 결합

03-03 13:38:20.020: ERROR/BluetoothService.cpp(2077): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) // Probably because we're calling cancelDiscovery() as a "security" (it's already been cancelled at some point beforehand) 
03-03 13:38:20.040: ERROR/BluetoothEventLoop.cpp(2077): onCreateDeviceResult: D-Bus error: org.bluez.Error.AlreadyExists (Device already exists) // This I don't understand 

2 : 결합하지 않으면

1, 나는 연속 두 가지 오류를 얻을. 연결이 완벽하게 이루어지고 프로그램이 작동합니다.

나는 안드로이드 소스를 직접 확인하려고 노력했다. 그러나 나는 초보자라는 점을 감안할 때 다소 힘든 일이다. 어떤 경험있는 사람이 그것을 해결할 수 있다면, 좋을 것입니다.

1

Tomas에 대답하려면 - SPP (직렬 포트 프로필) 프로필은 몇 가지 HTC Android 모델 (2.1 버전)에서도 손상되었지만 모델간에 일관성이 없습니다.

HTC Desire - 작동하지 않습니다.
HTC 범례 - 좋지 않지만 잠시 동안 작동합니까? 사용자 정의 ROM이있는 HTC Hero - 일부는 정상적으로 작동하고 일부는 전혀 작동하지 않으며 일부는 동시에 소리를 낼 때 사용합니다.

0

이전의 모든 대답은 표시에 있습니다. 본질적으로 연결하기 전에 페어링이 필요합니다.

그러나 페어링 후에도 오류가 발생했습니다. (나는 먼저 페어링하지 않고 연결하려고 시도했다.)

해결 방법은 전화를 한 번 재부팅하는 것입니다. 이제 페어링 된 장치에 잘 연결할 수 있습니다. 간단하지만, 나는 꽤 오랜 시간 동안 그것을 디버깅하는데 보냈다. 희망을 갖고 거기에있는 누군가에게 유용합니다.