2012-12-19 3 views
1

안드로이드 API 수준 15에서 블루투스 애플 리케이션을하고있다, 나는 블루투스를 사용하여 원격 장치를 coneect 싶어요. fetchUuidsWithSdp()를 사용하여 UUID를 얻습니다. 나는 노키아, PC가 아닌 안드로이드 장치와 같은 다른 모든 장치에 대해 uuids를 얻고 있습니다. Doucment 가입일 안드로이드에서 안드로이드 블루투스 장치 식별

,

fetchUuidsWithSdp() .//이 API는 비동기이며 ACTION_UUID 의도 원격 단부에서 지원 UUID를 함께 전송된다. SDP 레코드를 가져 오는 중 오류가 발생하거나 프로세스에 시간이 오래 걸리는 경우 현재 캐시에있는 UUID와 함께 ACTION_UUID 인 텐트가 전송됩니다. 클라이언트는 서비스 검색을 수행하지 않을 경우 getUuids()를 사용하여 UUID를 가져와야합니다.

docs의 클라이언트가 getUuids()를 사용해야합니다. 제 질문은, 어떻게 UUID가 다른 기기 또는 Android에서 왔는지 식별 할 수 있습니까?

답변

1

수 없습니다.

Android docs : "UUID의 요점은 임의의 임의 항목을 선택할 수있을 정도로 충분히 크며 충돌하지 않는다는 것입니다."

SPP (Serial Port Profile) UUID 00001101-0000-1000-8000-00805F9B34FB 외에도 위에서 설명한 이유 때문에 잘 알려진 UUID가 없습니다.

0x1101은 직렬 포트 프로필의 ID입니다. 이것이 UUID가 00001101으로 시작하는 이유입니다. 따라서 다른 장치가 지원하는 프로필을 분명히 식별 할 수 있습니다 (이것이 SDP의 주된 이유입니다). Device ID (DID) 프로파일을 살펴보고 상대방 제조업체를 검색하는 데 의지 할 수있는 것이 있는지 확인할 수 있습니다.

Android 기기에서 UUID가 수신되지 않는 경우 : 해당 기기가 실제로 블루투스 (예 : 네트워크 액세스)를 통해 하나 이상의 서비스를 제공하는지 확인합니다. 그러면 네트워크 ID로 시작하는 UUID를 가져와야합니다 액세스 프로파일 (예 : PAN).

getUuids()와 fetchUuidsWithSdp()의 차이점은 docs 상태와 마찬가지로 후자가 다른 장치에 실제로 SDP 요청을 수행하는 반면 전자는 마지막 응답 (일반적으로 블루투스 2.1 이상에서 발견시 수신).

+0

답장을 보내 주셔서 감사합니다. 안드로이드 블루투스 장치 용 getUuid()를 사용하고 싶습니다. 어떻게 안드로이드 장치인지 아니면 다른 blutoothDevice 개체인지 알 수 있습니까? –

+0

앞서 언급했듯이 원격 장치가 Android인지 여부는 BluetoothDevice에서 알 수 없습니다. 특히, getUuid()도 도움이되지 않습니다. – domsom

+0

이 문제의 해결 방법이 있습니까? –

관련 문제