2011-03-14 3 views
2

BroadcastReceiver가 BluetoothAdapter.ACTION_DISCOVERY_FINISHED를 얻었을 때 항상 새로운 블루투스 장치를 찾기 위해 루프에서 블루투스 검색 프로세스를 유지해야하는 애플리케이션이 있습니다.이 애플리케이션은 startDiscovery()를 다시 호출합니다. 최근에 소켓 통신을 앱에 추가했습니다. 기본적으로 서버 소켓을 열고 데이터를 전송 한 다음 소켓을 닫습니다.와이파이 및 블루투스 검색 문제

3G를 사용할 때 모든 것이 정상적으로 작동하고 스니퍼가 TCP 재전송을 표시하지 않으면 소켓이 완전히 열리고 닫힙니다. 그러나 Wifi를 사용하면 TCP 재전송이 많이 발생하고 때로는 소켓 연결에 실패하는 경우도 있습니다 (java.net.SocketException timeout).

Android 2.2.1에서 삼성 Galaxy S를 사용하고 있습니다. 내가 간과하는 것이 있습니까?

+0

Bluetooth 또는 WiFi 또는 3G를 사용하여 해당 소켓과 통신하십니까? – garzanti

+0

안녕하세요, 저는 같은 문제가 있습니다. 나는 장치를 지속적으로 발견하는 스레드를 가지고 있으며 HTTP POST를 시도하면 시간이 초과됩니다. – Enrique

답변

2

WiFi를 구성하고 다른 채널로 옮길 수 있습니까? 2.4GHz 대역에서도 Wi-Fi를 사용하는 경우 초기 탐색/연결 중에 간섭이 특별히 예상됩니다 (Wi-Fi가 전체 스펙트럼을 방해하지 않는 한 Bluetooth가 주파수 홉핑을하지 않으면 더 좋을 것입니다)