안드로이드 개발 질문/답변
(글 수 45,052)
Bluetooth 이어폰을 기준으로 질문드리겠습니다.
일단 Bluetooth를 활성화시키면 검색해서 장치목록이 쭈욱 뜨는데
그 중에 이어폰이 있습니다. 전원도 켜져있고 찾을 수 있도록 이어폰도 대기상태로 해놨습니다.
근데 페어링되긴 했지만 연결되진 않았다고뜨는데요. 이때 목록에서 이어폰을 선택하면 연결이 됩니다.
그럼 페어링과 연결은 다른 거라고 생각이 되는데
BluetoothAdapter.isEnabled()이건 Bluetooth가 활성화되어있는지 여부를 아는 거고
getBondedDevices는 페어링된 기기들을 찾는 거잖아요
bondstate를 확인해보니 연결되지 않고 페어링 된상태랑 연결된 상태의 값은 같더라구요
그럼 블루투스 이어폰이랑 연결이 되어있는지 아닌지를 어떻게 확인해야 하나요 ?
2011.12.05 16:53:54
isConnected()라는 메소드가 BluetoothSocket에 있어서
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
try {
BluetoothDevice device = bluetooth
.getRemoteDevice("00:19:01:40:19:C3");
BluetoothSocket clientSocket = device
.createRfcommSocketToServiceRecord(uuid);
clientSocket.connect();
} catch (IOException e) {
Log.d("BLUTOOTH", e.getMessage());
}
이런식으로 짜봤는데 device건 clientSocket건 간에 isConnected()메서드가 없네요 ;
isConnected()를 사용하기위해선 저렇게 하면 안되는 건가요 ?
2011.12.05 17:22:17
혹시나해서 SDK버전을 달리해서 해봤더니 되는군요
근데 SDK레벨 14 부터네요 ;
아이스크림 샌드위치를 타겟으로 하는 게 아니기때문에 다른 방법이 필요합니다.
아니면 BluetoothSocket이 아닌 다른 클래스의 메소드인가요 ?




와이파이랑 비슷하게 생각하심되죠.. 비번을 입력하면 다음부터는 자동접속 되잖아요.. getBondedDevices는 과거접속목록 정도인듯.. 연결여부는 IsConnected()로 확인하실수 있습니다.