2016-08-03 6 views
1

내 안드로이드 응용 프로그램은 버튼을 눌러 중지하는 전에 수동으로 요청 결과를 검사 할안드로이드 BLE 연결 속도 문제

BluetoothAdapter.startLeScan() 

를 사용합니다.

이러한 태도는 연결 시간에 영향을 줍니까?

블루투스 서비스가 바인드 될 때 검색이 차단되고 연결 설정 후 쓰기를위한 코드가 없으면 차단 해제 된 것 같습니다. 이게 옳은 거니?

연결 시간은 경우에 따라 다릅니다. 보통 평균 1 ~ 2 초 정도 걸리지 만 때로는 5 ~ 6 초 정도 걸립니다. 왜 이런 일이 일어나야합니까?

답변

1

이러한 태도는 연결 시간에 영향을 줍니까?

가끔씩. 연결 절차는 연결 요청을 보낸 후 장치가 연결 상태가되면 시작됩니다. 장치가 연결 상태로 들어가기 전에 수동으로 검사를 중지하면 연결을 계속할 수 있습니다.

나는 블루투스 서비스 쓰기에 어떤 코드없이 연결 설정 후, 차단 해제를 바인더 제본 할 때 스캔이 차단됩니다 생각합니다. 이게 옳은 거니?

예, 그렇습니다.

연결 시간은 경우에 따라 다릅니다. 약 1 ~ 2 초가 걸리므로 평균적으로 이지만, 때로는 5 ~ 6 초 또는 그 이상이 소요됩니다. 왜 이런 일이 발생해야합니까?

많은 이유가 있으며 중요한 이유 중 하나를 먼저 고려해 볼 수 있습니다. 그것이 BLE 장치의 특수 작동 모드입니다. 그들은 항상 활동적이지는 않지만 주기적입니다. 예를 들어, 10 초당 100ms 동안 작동하고 다른 9.9 초에서 작동합니다. BLE 장치가 절전 모드로 전환 될 때 스캔을 시작하면 9.9 초 이상이 필요합니다.

두 번째로 문제는 Android 기기 때문일 수 있습니다. 연결 요청을 보낼 때 다른 작업이나 이벤트가 있으면 연결 절차가 중단 될 수 있습니다.

셋째, 간섭이 있습니까? 어쩌면 와이파이 또는 USB 3.0.

+0

답장을 보내 주셔서 감사합니다. 그러나 나는 아직도 마지막 것을 완전히 이해할 수 없다. 스캔하는 것이 아니라 연결하는 것입니다. 그리고 저는 사용하지 않는 장치가 절대로 잠을 자지 못한다고 생각합니다. 스캔을 시작하면 스캐너 콜백이 0.1 초마다 호출됩니다. – March3April4

+0

@ March3April4 연결이 시작되면 스니퍼를 사용하여 공기 패킷을 캡처 할 수 있습니다. 이러한 패킷을 기반으로 문제가 발생할 수 있습니다. –