2017-01-17 7 views

답변

1

UUID는 장치의 MAC 주소 (Bluetooth 주소)를 의미한다고 가정합니다. UUID는 일반적으로 서비스 및 특성에 사용됩니다.

모든 연결 절차는 블루투스 주소를 기본 매개 변수로 사용합니다. 따라서 동일한 주소를 가진 두 장치는 동일한 장치로 취급됩니다. 사실 블루투스 장치의 MAC 주소는 이러한 이유로 정확히 고유해야합니다.

따라서 동일한 주소를 가진 두 장치에 동시에 연결할 수 없습니다. (*)

연결 방법에 대한 자세한 정보는 Bluetooth Core Spec, Vol. 3, 파트 C, 9.3.5 - 9.3.8 장.

(*) 이는 서로 다른 두 장치에 연결하는 일반적인 방법을 의미합니다. 들어오는 메시지는 동일한 주소를 가진 두 장치 사이의 링크 계층 수준에서 구별 할 수 없으므로 (사용자의 컨트롤은 지정된 주소가있는 장치가 하나만 있다고 항상 생각합니다), 암호화되지 않은 연결에서이 사실을 무시할 수 있습니다 (암호화는 장치 간 협의로 이루어지기 때문에 다른 장치가 동일한 Bluetooth 주소를 가지고 있더라도 암호화 된 연결에 참가할 수 없습니다). 그러나 그렇게하는 것은 권장되지 않습니다.

+0

안녕하세요, 귀하의 답변에 감사드립니다. 예, MAC 주소를 의미했습니다. iOS에서는 모든 장치에 시스템에서 UDID가 제공되므로 코드에서 UDID로 여러 장치를 구분할 수 있습니다. 이 UDID는 서비스 W 특성의 UDID와 유사합니다. 내가 발견 한 동일한 MAC/UDID를 가진 두 개의 장치로 테스트 한 후, 동시에 두 장치에 연결할 수 없었으며, iOS가 아닌 Android에 연결할 수있었습니다. – stoikr

1

두 대의 장치가 동일한 UUID를 사용하는 경우 단일 장치로 간주됩니다. 내가 제안하는 것은 UUID에 트리거 알림을 보내고 어떤 장치가 먼저 응답하는지 확인합니다. 두 번째로 멀리 떨어져있는 장치에 알림을 보냅니다. 스마트 폰/블루투스 탐색기에 가까울수록 먼저 알릴 것입니다. 블루투스는 거리 기반으로 작동하며, 소스 근처의 장치는 다른 장치보다 알림을 받게됩니다. 나는 비콘과 동일하게 시도했지만 결국 당신처럼 끝납니다.