안드로이드 개발 질문/답변
(글 수 45,052)
불루투스를 통해서 특정기기와 통신을 하는 프로그램이 있습니다.
단말은 갤S 이고 연결이 되면 데이타 통신도 잘되고 프로그램에 이상이 없는데
잘되다가도 갑자기 블루투스 연결단계에서 연결이 안되는 경우가 잇습니다.
연결이 안되니 아무것도 못하구요.
아예 안되면 상관이 없는데 잘될때는 전혀 이상업이 되고 안될때는 별짓을 해도 안됩니다.
안될때 페어링을 해제하고 PDA를 껏다 킨후 다시 페어링 한다음에 블루투스 연결을 시도하면 또 됩니다.
연결이 안될때는 왜그런건가요 페어링을 다시해주면 되는데 이해가 안가네요.
답변 부탁드려요.
2010.08.27 13:51:28
우선 요약하면, 정상적인 동작으로 보입니다.
한번 페어링이 된 후에는, 양쪽 블루투스 단말에서 일종의 키 값을 서로 저장하고 있습니다.
따라서, 다음번에 두 블루투스 장치를 다시 연결할 때는,
한번 페어링된 장치들 간에저장된 키값을 사용해서, 바로 연결할 수 있는 것 입니다.
문제는 두 장치중 한개가, 키 값을 먼저 지운 경우 입니다.
이때는 한쪽에만 키 값을 가지고 있고, 상대편은 없기 때문에,
키를 가지고 있는쪽에서 연결을 시도하면, 키가 없는 쪽에서 연결을 일방적으로 끊어 버립니다.
그래서, 다시 페어링을 해야만, 양쪽 장치가 연결이 되는 것 입니다.
껏다가 켜실 필요는 없어 보이구요, 페어링만 다시 하시면 될 것 같습니다.
2010.08.27 13:54:05
우선, 소스를 정확히 봐야 판단을 할수 있겠지만. . 짐작되는 부분은 역시 블루투스 연결설정이 제대로 안됫거나 커넥션이 중간에 끊어지는 경우 입니다. . 최대한 API 블루투스 채팅예제 에 나와있는 예제대로 하는게 가장 정석이겠구요. . 구조상 어쩔수 없다면 블루투스 Mac주소/블루투스 아답터/블루투스 스트림 Static 변수로 설정하여 하나의 연결객체만 생성해서 테스트 해보시길. . 그래도 끊긴다면 하드웨어 문제일듯
2010.08.27 16:30:11
연결 안될때 한번 블루투스 디스코버리 해보세요~
검색된 기기들 이름이 null 값으로 뜨면 bluetooth default adapter 가 뻗은 경우 입니다.
여러가지 이유가 많은데 특정기기 device에서 이미 플랫폼단에서 선점하고 있는 프로토콜에 에어로 연결 하다가 비정상 적으로 맛탱이가 가고 null 값에 참조하고 정삭동작을 안하니 연결은 계속 안되는 그런 경우 입니다 ㅠㅠ
그때는 모 말씀하신데로 껏다 켜야 하는 상황입니다.. 어플리케이션 구현도 중요하지만 특정기기(device)의 구현도 안드로이드 플랫폼에 맞게 구현이 되어야 합니다^^
검색된 기기들 이름이 null 값으로 뜨면 bluetooth default adapter 가 뻗은 경우 입니다.
여러가지 이유가 많은데 특정기기 device에서 이미 플랫폼단에서 선점하고 있는 프로토콜에 에어로 연결 하다가 비정상 적으로 맛탱이가 가고 null 값에 참조하고 정삭동작을 안하니 연결은 계속 안되는 그런 경우 입니다 ㅠㅠ
그때는 모 말씀하신데로 껏다 켜야 하는 상황입니다.. 어플리케이션 구현도 중요하지만 특정기기(device)의 구현도 안드로이드 플랫폼에 맞게 구현이 되어야 합니다^^