2013-06-16 3 views
0

블루투스 앱에서 작업 중이며 BluetoothSocket.isConnected()가 API 레벨 14 (Android 4.0)에 추가되었으며 API 레벨 8.0 (안드로이드 2.3.4)Android 2.3.4에서 BluetoothSocket.isConnected()를 사용할 수 없습니다.

나는 이것에 대해 계속 생각할 수있는 유일한 방법은 연결이 성공하면 true로 설정된 활동 자체에 부울 플래그를 사용하는 것입니다. 하지만 하드웨어 관점에서 볼 때, isConnected()만큼 신뢰할 만하다고는 생각하지 않습니다. 같은 것을 성취 할 수있는 다른 방법이 있습니까?

추신 : 내가 작업하고있는 앱은 Android 2.2 이상에서 호환되어야합니다.

편집 : 나는 그것을 현재 추적하고 부울 플래그를 사용하고 있습니다. 그러나 연결 상태를 얻는 다른 방법이 있는지 알고 싶다면

+0

아마도'BluetoothSocket.getRemoteDevice()'가 도움이 될까요? Connected는 연결되어 있지 않은 BluetoothDevice의 인스턴스를 반환합니다. – ozbek

+0

@shoerat : 그러나,'getRemoteDevice()'는 소켓이 연결되지 않았지만'BluetoothSocket.close()'다음에'null' 객체를 반환하지 않으면'null' 객체를 반환합니다. 'BluetoothSocket.isConnected()'만큼 신뢰성이 떨어집니다. –

답변

1

최신 버전의 isConnected() 함수는 다음 상수 중 하나를 반환하는 필드 일뿐입니다.

는 SocketState.LISTENING 그래서 그것은 당신의 부울 플래그 본질적으로 같은 방식으로 작동하는 것

을 SocketState.CONNECTED SocketState.INIT 을 SocketState.CLOSED.

관련 문제